mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
bitkeeper revision 1.1236.25.8 (4233549cSYOSn-8TjPjFtQTvJB0ECA)
Update to Linux 2.6.11. Signed-off-by: Christian Limpach <chris@xensource.com>
This commit is contained in:
commit
964a5ccfa9
130 files changed
+1928
-3867
No files matched your search
@@ -134,151 +134,149 @@
|
||||
3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.29-xen-sparse/mm/swapfile.c
|
||||
41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.29-xen-sparse/mm/vmalloc.c
|
||||
41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.29-xen-sparse/net/core/skbuff.c
|
||||
40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.10-xen-sparse/arch/xen/Kconfig
|
||||
40f56237utH41NPukqHksuNf29IC9A linux-2.6.10-xen-sparse/arch/xen/Kconfig.drivers
|
||||
40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.10-xen-sparse/arch/xen/Makefile
|
||||
40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.10-xen-sparse/arch/xen/boot/Makefile
|
||||
40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.10-xen-sparse/arch/xen/configs/xen0_defconfig
|
||||
40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.10-xen-sparse/arch/xen/configs/xenU_defconfig
|
||||
40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.10-xen-sparse/arch/xen/i386/Kconfig
|
||||
40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.10-xen-sparse/arch/xen/i386/Makefile
|
||||
40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/Makefile
|
||||
40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/Makefile
|
||||
40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/common.c
|
||||
41ab440bnpxZdWShZrGgM9pPaz5rmA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/Makefile
|
||||
41ab440bBKWz-aEOEojU4PAMXe3Ppg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
|
||||
40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/entry.S
|
||||
40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.10-xen-sparse/arch/xen/i386/kernel/head.S
|
||||
40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c
|
||||
40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ioport.c
|
||||
41d00d82zN8IfLBRxc7G_i7lbwT3cQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/irq.c
|
||||
40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/ldt.c
|
||||
41d54a76YMCA67S8J-TBT3J62Wx6yA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/microcode.c
|
||||
4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/pci-dma.c
|
||||
40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.10-xen-sparse/arch/xen/i386/kernel/process.c
|
||||
40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/setup.c
|
||||
40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/signal.c
|
||||
41811cac4lkCB-fHir6CcxuEJ2pGsQ linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smp.c
|
||||
41811ca9mbGpqBrZVrUGEiv8CTV3ng linux-2.6.10-xen-sparse/arch/xen/i386/kernel/smpboot.c
|
||||
40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/time.c
|
||||
40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/Makefile
|
||||
40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.10-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c
|
||||
40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/traps.c
|
||||
40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.S
|
||||
40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.10-xen-sparse/arch/xen/i386/kernel/vsyscall.lds
|
||||
40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.10-xen-sparse/arch/xen/i386/mm/Makefile
|
||||
40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/fault.c
|
||||
4118cc35CbY8rfGVspF5O-7EkXBEAA linux-2.6.10-xen-sparse/arch/xen/i386/mm/highmem.c
|
||||
40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.10-xen-sparse/arch/xen/i386/mm/hypervisor.c
|
||||
40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.10-xen-sparse/arch/xen/i386/mm/init.c
|
||||
41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.10-xen-sparse/arch/xen/i386/mm/ioremap.c
|
||||
413b5ab8LIowAnQrEmaOJSdmqm96jQ linux-2.6.10-xen-sparse/arch/xen/i386/mm/pageattr.c
|
||||
40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.10-xen-sparse/arch/xen/i386/mm/pgtable.c
|
||||
4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.10-xen-sparse/arch/xen/i386/pci/Makefile
|
||||
4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.10-xen-sparse/arch/xen/i386/pci/direct.c
|
||||
4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.10-xen-sparse/arch/xen/i386/pci/irq.c
|
||||
40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.10-xen-sparse/arch/xen/kernel/Makefile
|
||||
40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.10-xen-sparse/arch/xen/kernel/ctrl_if.c
|
||||
41ab6fa06JdF7jxUsuDcjN3UhuIAxg linux-2.6.10-xen-sparse/arch/xen/kernel/devmem.c
|
||||
40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.10-xen-sparse/arch/xen/kernel/evtchn.c
|
||||
4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.10-xen-sparse/arch/xen/kernel/fixup.c
|
||||
412dfae9eA3_6e6bCGUtg1mj8b56fQ linux-2.6.10-xen-sparse/arch/xen/kernel/gnttab.c
|
||||
40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.10-xen-sparse/arch/xen/kernel/reboot.c
|
||||
414c113396tK1HTVeUalm3u-1DF16g linux-2.6.10-xen-sparse/arch/xen/kernel/skbuff.c
|
||||
418f90e4lGdeJK9rmbOB1kN-IKSjsQ linux-2.6.10-xen-sparse/arch/xen/kernel/smp.c
|
||||
3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.10-xen-sparse/arch/xen/kernel/xen_proc.c
|
||||
41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.10-xen-sparse/drivers/Makefile
|
||||
4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.10-xen-sparse/drivers/char/mem.c
|
||||
4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.10-xen-sparse/drivers/char/tty_io.c
|
||||
40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.10-xen-sparse/drivers/xen/Makefile
|
||||
41768fbcncpBQf8s2l2-CwoSNIZ9uA linux-2.6.10-xen-sparse/drivers/xen/balloon/Makefile
|
||||
3e6377f8i5e9eGz7Pw6fQuhuTQ7DQg linux-2.6.10-xen-sparse/drivers/xen/balloon/balloon.c
|
||||
410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.10-xen-sparse/drivers/xen/blkback/Makefile
|
||||
4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.10-xen-sparse/drivers/xen/blkback/blkback.c
|
||||
4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.10-xen-sparse/drivers/xen/blkback/common.h
|
||||
4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.10-xen-sparse/drivers/xen/blkback/control.c
|
||||
4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.10-xen-sparse/drivers/xen/blkback/interface.c
|
||||
4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.10-xen-sparse/drivers/xen/blkback/vbd.c
|
||||
40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.10-xen-sparse/drivers/xen/blkfront/Kconfig
|
||||
40f562395atl9x4suKGhPkjqLOXESg linux-2.6.10-xen-sparse/drivers/xen/blkfront/Makefile
|
||||
40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.10-xen-sparse/drivers/xen/blkfront/blkfront.c
|
||||
40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.10-xen-sparse/drivers/xen/blkfront/block.h
|
||||
40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.10-xen-sparse/drivers/xen/blkfront/vbd.c
|
||||
41a226e0vjAcDXHOnXE5ummcdUD2mg linux-2.6.10-xen-sparse/drivers/xen/blktap/Makefile
|
||||
41a226e0VeZA1N8tbU6nvJ3OxUcJmw linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.c
|
||||
41a226e1k4J5VMLnrYXDWRqElS49YQ linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap.h
|
||||
41a226e1-A_Hy7utS8vJKaXnH_tzfA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_controlmsg.c
|
||||
41a226e19NoUUTOvs7jumDMRYDIO4Q linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_datapath.c
|
||||
41a226e1MNSyWWK5dEVgvSQ5OW0fDA linux-2.6.10-xen-sparse/drivers/xen/blktap/blktap_userdev.c
|
||||
40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.10-xen-sparse/drivers/xen/console/Makefile
|
||||
3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.10-xen-sparse/drivers/xen/console/console.c
|
||||
40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.10-xen-sparse/drivers/xen/evtchn/Makefile
|
||||
40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.10-xen-sparse/drivers/xen/evtchn/evtchn.c
|
||||
410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.10-xen-sparse/drivers/xen/netback/Makefile
|
||||
4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.10-xen-sparse/drivers/xen/netback/common.h
|
||||
4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.10-xen-sparse/drivers/xen/netback/control.c
|
||||
4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.10-xen-sparse/drivers/xen/netback/interface.c
|
||||
4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.10-xen-sparse/drivers/xen/netback/netback.c
|
||||
40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.10-xen-sparse/drivers/xen/netfront/Kconfig
|
||||
40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.10-xen-sparse/drivers/xen/netfront/Makefile
|
||||
405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.10-xen-sparse/drivers/xen/netfront/netfront.c
|
||||
4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.10-xen-sparse/drivers/xen/privcmd/Makefile
|
||||
3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.10-xen-sparse/drivers/xen/privcmd/privcmd.c
|
||||
41ee5e8bYDQkjRVKnFn5uFyy0KreCw linux-2.6.10-xen-sparse/drivers/xen/usbback/common.h
|
||||
41ee5e8bt7xeBUJqG5XJS-ofukdsgA linux-2.6.10-xen-sparse/drivers/xen/usbback/control.c
|
||||
41ee5e8bSs3BGC7yegM_ek2Tn0Ahvw linux-2.6.10-xen-sparse/drivers/xen/usbback/interface.c
|
||||
41ee5e8bglvqKvZSY5uJ5JGQejEwyQ linux-2.6.10-xen-sparse/drivers/xen/usbback/usbback.c
|
||||
41ee5e8ckZ9xVNvu9NHIZDK7JqApmQ linux-2.6.10-xen-sparse/drivers/xen/usbfront/usbfront.c
|
||||
41ee5e8ck9scpGirfqEZRARbGDyTXA linux-2.6.10-xen-sparse/drivers/xen/usbfront/xhci.h
|
||||
412f47e4RKD-R5IS5gEXvcT8L4v8gA linux-2.6.10-xen-sparse/include/asm-generic/pgtable.h
|
||||
40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/desc.h
|
||||
4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h
|
||||
40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/fixmap.h
|
||||
41979925z1MsKU1SfuuheM1IFDQ_bA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/floppy.h
|
||||
4118b6a418gnL6AZsTdglC92YGqYTg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/highmem.h
|
||||
40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/io.h
|
||||
40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
|
||||
40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h
|
||||
40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h
|
||||
41811f07Iri9hrvs97t-baxmhOwWDQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mach-xen/smpboot_hooks.h
|
||||
4120f807GCO0uqsLqdZj9csxR1Wthw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/mmu_context.h
|
||||
40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/page.h
|
||||
40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/param.h
|
||||
41137cc1kkvg0cg7uxddcEfjL7L67w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pci.h
|
||||
40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgalloc.h
|
||||
412e01beTwiaC8sYY4XJP8PxLST5CA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level-defs.h
|
||||
40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
|
||||
40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/pgtable.h
|
||||
40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/processor.h
|
||||
412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/ptrace.h
|
||||
40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/segment.h
|
||||
40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/setup.h
|
||||
4198c32a8NzmcKVOzKaEJfaQxxiA0A linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/spinlock.h
|
||||
40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h
|
||||
40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/system.h
|
||||
40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/tlbflush.h
|
||||
41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.10-xen-sparse/include/asm-xen/asm-i386/vga.h
|
||||
41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.10-xen-sparse/include/asm-xen/balloon.h
|
||||
40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.10-xen-sparse/include/asm-xen/ctrl_if.h
|
||||
40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.10-xen-sparse/include/asm-xen/evtchn.h
|
||||
419b4e9367PjTEvdjwavWN12BeBBXg linux-2.6.10-xen-sparse/include/asm-xen/foreign_page.h
|
||||
412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6.10-xen-sparse/include/asm-xen/gnttab.h
|
||||
40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.10-xen-sparse/include/asm-xen/hypervisor.h
|
||||
3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.10-xen-sparse/include/asm-xen/linux-public/privcmd.h
|
||||
3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.10-xen-sparse/include/asm-xen/linux-public/suspend.h
|
||||
40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.10-xen-sparse/include/asm-xen/multicall.h
|
||||
4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.10-xen-sparse/include/asm-xen/queues.h
|
||||
3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.10-xen-sparse/include/asm-xen/xen_proc.h
|
||||
419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.10-xen-sparse/include/linux/gfp.h
|
||||
42305f545Vc5SLCUewZ2-n-P9JJhEQ linux-2.6.10-xen-sparse/include/linux/highmem.h
|
||||
419dfc609zbti8rqL60tL2dHXQ_rvQ linux-2.6.10-xen-sparse/include/linux/irq.h
|
||||
4124f66f4NaKNa0xPiGGykn9QaZk3w linux-2.6.10-xen-sparse/include/linux/skbuff.h
|
||||
419dfc6awx7w88wk6cG9P3mPidX6LQ linux-2.6.10-xen-sparse/kernel/irq/manage.c
|
||||
40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.10-xen-sparse/mkbuildtree
|
||||
42305f54Q6xJ1bXcQJlCQq1m-e2C8g linux-2.6.10-xen-sparse/mm/highmem.c
|
||||
412f46c0LJuKAgSPGoC0Z1DEkLfuLA linux-2.6.10-xen-sparse/mm/memory.c
|
||||
410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.10-xen-sparse/mm/page_alloc.c
|
||||
41505c572m-s9ATiO1LiD1GPznTTIg linux-2.6.10-xen-sparse/net/core/skbuff.c
|
||||
40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.11-xen-sparse/arch/xen/Kconfig
|
||||
40f56237utH41NPukqHksuNf29IC9A linux-2.6.11-xen-sparse/arch/xen/Kconfig.drivers
|
||||
40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.11-xen-sparse/arch/xen/Makefile
|
||||
40f56237JTc60m1FRlUxkUaGSQKrNw linux-2.6.11-xen-sparse/arch/xen/boot/Makefile
|
||||
40f56237hRxbacU_3PdoAl6DjZ3Jnw linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig
|
||||
40f56237wubfjJKlfIzZlI3ZM2VgGA linux-2.6.11-xen-sparse/arch/xen/configs/xenU_defconfig
|
||||
40f56237Mta0yHNaMS_qtM2rge0qYA linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig
|
||||
40f56238u2CJdXNpjsZgHBxeVyY-2g linux-2.6.11-xen-sparse/arch/xen/i386/Makefile
|
||||
40f56238eczveJ86k_4hNxCLRQIF-g linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile
|
||||
40f56238rXVTJQKbBuXXLH52qEArcg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/Makefile
|
||||
40f562385s4lr6Zg92gExe7UQ4A76Q linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/common.c
|
||||
41ab440bnpxZdWShZrGgM9pPaz5rmA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/Makefile
|
||||
41ab440bBKWz-aEOEojU4PAMXe3Ppg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/cpu/mtrr/main.c
|
||||
40f56238XDtHSijkAFlbv1PT8Bhw_Q linux-2.6.11-xen-sparse/arch/xen/i386/kernel/entry.S
|
||||
40f56238bnvciAuyzAiMkdzGErYt1A linux-2.6.11-xen-sparse/arch/xen/i386/kernel/head.S
|
||||
40f58a0d31M2EkuPbG94ns_nOi0PVA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/i386_ksyms.c
|
||||
40faa751_zbZlAmLyQgCXdYekVFdWA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ioport.c
|
||||
40f56238ue3YRsK52HG7iccNzP1AwQ linux-2.6.11-xen-sparse/arch/xen/i386/kernel/ldt.c
|
||||
41d54a76YMCA67S8J-TBT3J62Wx6yA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/microcode.c
|
||||
4107adf1cNtsuOxOB4T6paAoY2R2PA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/pci-dma.c
|
||||
40f56238a8iOVDEoostsbun_sy2i4g linux-2.6.11-xen-sparse/arch/xen/i386/kernel/process.c
|
||||
40f56238YQIJoYG2ehDGEcdTgLmGbg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c
|
||||
40f56238nWMQg7CKbyTy0KJNvCzbtg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/signal.c
|
||||
40f56238qVGkpO_ycnQA8k03kQzAgA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/time.c
|
||||
40f56238NzTgeO63RGoxHrW5NQeO3Q linux-2.6.11-xen-sparse/arch/xen/i386/kernel/timers/Makefile
|
||||
40f56238BMqG5PuSHufpjbvp_helBw linux-2.6.11-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c
|
||||
40f562389xNa78YBZciUibQjyRU_Lg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/traps.c
|
||||
40f56238JypKAUG01ZojFwH7qnZ5uA linux-2.6.11-xen-sparse/arch/xen/i386/kernel/vsyscall.S
|
||||
40f56238wi6AdNQjm0RT57bSkwb6hg linux-2.6.11-xen-sparse/arch/xen/i386/kernel/vsyscall.lds
|
||||
40f56238a3w6-byOzexIlMgni76Lcg linux-2.6.11-xen-sparse/arch/xen/i386/mm/Makefile
|
||||
40f56238ILx8xlbywNbzTdv5Zr4xXQ linux-2.6.11-xen-sparse/arch/xen/i386/mm/fault.c
|
||||
4118cc35CbY8rfGVspF5O-7EkXBEAA linux-2.6.11-xen-sparse/arch/xen/i386/mm/highmem.c
|
||||
40f562383SKvDStdtrvzr5fyCbW4rw linux-2.6.11-xen-sparse/arch/xen/i386/mm/hypervisor.c
|
||||
40f56239xcNylAxuGsQHwi1AyMLV8w linux-2.6.11-xen-sparse/arch/xen/i386/mm/init.c
|
||||
41062ab7CjxC1UBaFhOMWWdhHkIUyg linux-2.6.11-xen-sparse/arch/xen/i386/mm/ioremap.c
|
||||
413b5ab8LIowAnQrEmaOJSdmqm96jQ linux-2.6.11-xen-sparse/arch/xen/i386/mm/pageattr.c
|
||||
40f5623906UYHv1rsVUeRc0tFT0dWw linux-2.6.11-xen-sparse/arch/xen/i386/mm/pgtable.c
|
||||
4107adf12ndy94MidCaivDibJ3pPAg linux-2.6.11-xen-sparse/arch/xen/i386/pci/Makefile
|
||||
4107adf1WcCgkhsdLTRGX52cOG1vJg linux-2.6.11-xen-sparse/arch/xen/i386/pci/direct.c
|
||||
4107adf1s5u6249DNPUViX1YNagbUQ linux-2.6.11-xen-sparse/arch/xen/i386/pci/irq.c
|
||||
40f56239zOksGg_H4XD4ye6iZNtoZA linux-2.6.11-xen-sparse/arch/xen/kernel/Makefile
|
||||
40f56239bvOjuuuViZ0XMlNiREFC0A linux-2.6.11-xen-sparse/arch/xen/kernel/ctrl_if.c
|
||||
41ab6fa06JdF7jxUsuDcjN3UhuIAxg linux-2.6.11-xen-sparse/arch/xen/kernel/devmem.c
|
||||
40f56238xFQe9T7M_U_FItM-bZIpLw linux-2.6.11-xen-sparse/arch/xen/kernel/evtchn.c
|
||||
4110f478aeQWllIN7J4kouAHiAqrPw linux-2.6.11-xen-sparse/arch/xen/kernel/fixup.c
|
||||
412dfae9eA3_6e6bCGUtg1mj8b56fQ linux-2.6.11-xen-sparse/arch/xen/kernel/gnttab.c
|
||||
40f562392LBhwmOxVPsYdkYXMxI_ZQ linux-2.6.11-xen-sparse/arch/xen/kernel/reboot.c
|
||||
414c113396tK1HTVeUalm3u-1DF16g linux-2.6.11-xen-sparse/arch/xen/kernel/skbuff.c
|
||||
3f68905c5eiA-lBMQSvXLMWS1ikDEA linux-2.6.11-xen-sparse/arch/xen/kernel/xen_proc.c
|
||||
41261688yS8eAyy-7kzG4KBs0xbYCA linux-2.6.11-xen-sparse/drivers/Makefile
|
||||
4108f5c1WfTIrs0HZFeV39sttekCTw linux-2.6.11-xen-sparse/drivers/char/mem.c
|
||||
4111308bZAIzwf_Kzu6x1TZYZ3E0_Q linux-2.6.11-xen-sparse/drivers/char/tty_io.c
|
||||
40f56239Dp_vMTgz8TEbvo1hjHGc3w linux-2.6.11-xen-sparse/drivers/xen/Makefile
|
||||
41768fbcncpBQf8s2l2-CwoSNIZ9uA linux-2.6.11-xen-sparse/drivers/xen/balloon/Makefile
|
||||
3e6377f8i5e9eGz7Pw6fQuhuTQ7DQg linux-2.6.11-xen-sparse/drivers/xen/balloon/balloon.c
|
||||
410d0893otFGghmv4dUXDUBBdY5aIA linux-2.6.11-xen-sparse/drivers/xen/blkback/Makefile
|
||||
4087cf0d1XgMkooTZAiJS6NrcpLQNQ linux-2.6.11-xen-sparse/drivers/xen/blkback/blkback.c
|
||||
4087cf0dZadZ8r6CEt4fNN350Yle3A linux-2.6.11-xen-sparse/drivers/xen/blkback/common.h
|
||||
4087cf0dxlh29iw0w-9rxOCEGCjPcw linux-2.6.11-xen-sparse/drivers/xen/blkback/control.c
|
||||
4087cf0dbuoH20fMjNZjcgrRK-1msQ linux-2.6.11-xen-sparse/drivers/xen/blkback/interface.c
|
||||
4087cf0dk97tacDzxfByWV7JifUYqA linux-2.6.11-xen-sparse/drivers/xen/blkback/vbd.c
|
||||
40f56239Sfle6wGv5FS0wjS_HI150A linux-2.6.11-xen-sparse/drivers/xen/blkfront/Kconfig
|
||||
40f562395atl9x4suKGhPkjqLOXESg linux-2.6.11-xen-sparse/drivers/xen/blkfront/Makefile
|
||||
40f56239-JNIaTzlviVJohVdoYOUpw linux-2.6.11-xen-sparse/drivers/xen/blkfront/blkfront.c
|
||||
40f56239y9naBTXe40Pi2J_z3p-d1g linux-2.6.11-xen-sparse/drivers/xen/blkfront/block.h
|
||||
40f56239BVfPsXBiWQitXgDRtOsiqg linux-2.6.11-xen-sparse/drivers/xen/blkfront/vbd.c
|
||||
40f56239fsLjvtD8YBRAWphps4FDjg linux-2.6.11-xen-sparse/drivers/xen/console/Makefile
|
||||
3e5a4e651TH-SXHoufurnWjgl5bfOA linux-2.6.11-xen-sparse/drivers/xen/console/console.c
|
||||
40f56239KYxO0YabhPzCTeUuln-lnA linux-2.6.11-xen-sparse/drivers/xen/evtchn/Makefile
|
||||
40f56239DoibTX6R-ZYd3QTXAB8_TA linux-2.6.11-xen-sparse/drivers/xen/evtchn/evtchn.c
|
||||
410a9817HEVJvred5Oy_uKH3HFJC5Q linux-2.6.11-xen-sparse/drivers/xen/netback/Makefile
|
||||
4097ba831lpGeLlPg-bfV8XarVVuoQ linux-2.6.11-xen-sparse/drivers/xen/netback/common.h
|
||||
4097ba83wvv8yi5P5xugCUBAdb6O-A linux-2.6.11-xen-sparse/drivers/xen/netback/control.c
|
||||
4097ba83byY5bTSugJGZ1exTxIcMKw linux-2.6.11-xen-sparse/drivers/xen/netback/interface.c
|
||||
4087cf0dGmSbFhFZyIZBJzvqxY-qBw linux-2.6.11-xen-sparse/drivers/xen/netback/netback.c
|
||||
40f56239lrg_Ob0BJ8WBFS1zeg2CYw linux-2.6.11-xen-sparse/drivers/xen/netfront/Kconfig
|
||||
40f56239Wd4k_ycG_mFsSO1r5xKdtQ linux-2.6.11-xen-sparse/drivers/xen/netfront/Makefile
|
||||
405853f6nbeazrNyEWNHBuoSg2PiPA linux-2.6.11-xen-sparse/drivers/xen/netfront/netfront.c
|
||||
4108f5c1ppFXVpQzCOAZ6xXYubsjKA linux-2.6.11-xen-sparse/drivers/xen/privcmd/Makefile
|
||||
3e5a4e65IUfzzMu2kZFlGEB8-rpTaA linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c
|
||||
412f47e4RKD-R5IS5gEXvcT8L4v8gA linux-2.6.11-xen-sparse/include/asm-generic/pgtable.h
|
||||
40f56239YAjS52QG2FIAQpHDZAdGHg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/desc.h
|
||||
4107adf1E5O4ztGHNGMzCCNhcvqNow linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/dma-mapping.h
|
||||
40f5623akIoBsQ3KxSB2kufkbgONXQ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/fixmap.h
|
||||
41979925z1MsKU1SfuuheM1IFDQ_bA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/floppy.h
|
||||
4118b6a418gnL6AZsTdglC92YGqYTg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/highmem.h
|
||||
40f5623aJVXQwpJMOLE99XgvGsfQ8Q linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/io.h
|
||||
40f5623aKXkBBxgpLx2NcvkncQ1Yyw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h
|
||||
40f5623aDMCsWOFO0jktZ4e8sjwvEg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_post.h
|
||||
40f5623arsFXkGdPvIqvFi3yFXGR0Q linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/setup_arch_pre.h
|
||||
4120f807GCO0uqsLqdZj9csxR1Wthw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mmu_context.h
|
||||
40f5623adgjZq9nAgCt0IXdWl7udSA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/page.h
|
||||
40f5623a54NuG-7qHihGYmw4wWQnMA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/param.h
|
||||
41137cc1kkvg0cg7uxddcEfjL7L67w linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pci.h
|
||||
40f5623atCokYc2uCysSJ8jFO8TEsw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgalloc.h
|
||||
412e01beTwiaC8sYY4XJP8PxLST5CA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level-defs.h
|
||||
40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
|
||||
40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/pgtable.h
|
||||
40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/processor.h
|
||||
412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/ptrace.h
|
||||
40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/segment.h
|
||||
40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/setup.h
|
||||
40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h
|
||||
40f5623bVdKP7Dt7qm8twu3NcnGNbA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/system.h
|
||||
40f5623bc8LKPRO09wY5dGDnY_YCpw linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/tlbflush.h
|
||||
41062ab7uFxnCq-KtPeAm-aV8CicgA linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/vga.h
|
||||
41af4017PDMuSmMWtSRU5UC9Vylw5g linux-2.6.11-xen-sparse/include/asm-xen/balloon.h
|
||||
40f5623bYNP7tHE2zX6YQxp9Zq2utQ linux-2.6.11-xen-sparse/include/asm-xen/ctrl_if.h
|
||||
40f5623b3Eqs8pAc5WpPX8_jTzV2qw linux-2.6.11-xen-sparse/include/asm-xen/evtchn.h
|
||||
419b4e9367PjTEvdjwavWN12BeBBXg linux-2.6.11-xen-sparse/include/asm-xen/foreign_page.h
|
||||
412dfaeazclyNDM0cpnp60Yo4xulpQ linux-2.6.11-xen-sparse/include/asm-xen/gnttab.h
|
||||
40f5623aGPlsm0u1LTO-NVZ6AGzNRQ linux-2.6.11-xen-sparse/include/asm-xen/hypervisor.h
|
||||
3f108af1ylCIm82H052FVTfXACBHrw linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h
|
||||
3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ linux-2.6.11-xen-sparse/include/asm-xen/linux-public/suspend.h
|
||||
40f5623cndVUFlkxpf7Lfx7xu8madQ linux-2.6.11-xen-sparse/include/asm-xen/multicall.h
|
||||
4122466356eIBnC9ot44WSVVIFyhQA linux-2.6.11-xen-sparse/include/asm-xen/queues.h
|
||||
3f689063BoW-HWV3auUJ-OqXfcGArw linux-2.6.11-xen-sparse/include/asm-xen/xen_proc.h
|
||||
419b4e93z2S0gR17XTy8wg09JEwAhg linux-2.6.11-xen-sparse/include/linux/gfp.h
|
||||
42305f545Vc5SLCUewZ2-n-P9JJhEQ linux-2.6.11-xen-sparse/include/linux/highmem.h
|
||||
419dfc609zbti8rqL60tL2dHXQ_rvQ linux-2.6.11-xen-sparse/include/linux/irq.h
|
||||
419dfc6awx7w88wk6cG9P3mPidX6LQ linux-2.6.11-xen-sparse/kernel/irq/manage.c
|
||||
40f56a0ddHCSs3501MY4hRf22tctOw linux-2.6.11-xen-sparse/mkbuildtree
|
||||
42305f54Q6xJ1bXcQJlCQq1m-e2C8g linux-2.6.11-xen-sparse/mm/highmem.c
|
||||
412f46c0LJuKAgSPGoC0Z1DEkLfuLA linux-2.6.11-xen-sparse/mm/memory.c
|
||||
410a94a4KT6I6X0LVc7djB39tRDp4g linux-2.6.11-xen-sparse/mm/page_alloc.c
|
||||
413cb1e4zst25MDYjg63Y-NGC5_pLg netbsd-2.0-xen-sparse/Makefile
|
||||
413cb1e5c_Mkxf_X0zimEhTKI_l4DA netbsd-2.0-xen-sparse/mkbuildtree
|
||||
413cb1e5kY_Zil7-b0kI6hvCIxBEYg netbsd-2.0-xen-sparse/nbconfig-xen
|
||||
@@ -317,7 +315,7 @@
|
||||
422e4430vKaHLOOGS7X-SUUe3EBCgw netbsd-2.0-xen-sparse/sys/miscfs/kernfs/kernfs.h
|
||||
422e4430-gOD358H8nGGnNWes08Nng netbsd-2.0-xen-sparse/sys/miscfs/kernfs/kernfs_vnops.c
|
||||
413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
|
||||
413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.10/agpgart.patch
|
||||
413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.11/agpgart.patch
|
||||
3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
|
||||
40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk
|
||||
4209033eUwhDBJ_bxejiv5c6gjXS4A tools/blktap/Makefile
|
||||
|
||||
@@ -36,7 +36,7 @@ static inline int pgd_present(pgd_t pgd) { return 1; }
|
||||
|
||||
#define set_pte(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low)
|
||||
#define set_pte_atomic(pteptr, pteval) queue_l1_entry_update(pteptr, (pteval).pte_low)
|
||||
#define set_pmd(pmdptr, pmdval) queue_l2_entry_update((pmdptr), (pmdval).pmd)
|
||||
#define set_pmd(pmdptr, pmdval) queue_l2_entry_update((pmdptr), (pmdval))
|
||||
#define set_pgd(pgdptr, pgdval) ((void)0)
|
||||
|
||||
#define pgd_page(pgd) \
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+19
-9
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.10-xen0
|
||||
# Mon Feb 21 13:46:38 2005
|
||||
# Linux kernel version: 2.6.11-xen0
|
||||
# Fri Mar 11 01:02:42 2005
|
||||
#
|
||||
CONFIG_XEN=y
|
||||
CONFIG_ARCH_XEN=y
|
||||
@@ -13,12 +13,10 @@ CONFIG_NO_IDLE_HZ=y
|
||||
CONFIG_XEN_PRIVILEGED_GUEST=y
|
||||
CONFIG_XEN_PHYSDEV_ACCESS=y
|
||||
CONFIG_XEN_BLKDEV_BACKEND=y
|
||||
# CONFIG_XEN_BLKDEV_TAP_BE is not set
|
||||
CONFIG_XEN_NETDEV_BACKEND=y
|
||||
CONFIG_XEN_BLKDEV_FRONTEND=y
|
||||
CONFIG_XEN_NETDEV_FRONTEND=y
|
||||
# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
|
||||
# CONFIG_XEN_BLKDEV_TAP is not set
|
||||
CONFIG_XEN_WRITABLE_PAGETABLES=y
|
||||
CONFIG_XEN_SCRUB_PAGES=y
|
||||
CONFIG_X86=y
|
||||
@@ -105,6 +103,7 @@ CONFIG_X86_CMPXCHG=y
|
||||
CONFIG_X86_XADD=y
|
||||
CONFIG_X86_L1_CACHE_SHIFT=7
|
||||
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_X86_WP_WORKS_OK=y
|
||||
CONFIG_X86_INVLPG=y
|
||||
CONFIG_X86_BSWAP=y
|
||||
@@ -116,6 +115,7 @@ CONFIG_X86_USE_PPRO_CHECKSUM=y
|
||||
# CONFIG_HPET_EMULATE_RTC is not set
|
||||
# CONFIG_SMP is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_BKL=y
|
||||
CONFIG_MICROCODE=y
|
||||
CONFIG_X86_CPUID=y
|
||||
|
||||
@@ -212,6 +212,7 @@ CONFIG_BLK_CPQ_CISS_DA=y
|
||||
# CONFIG_CISS_SCSI_TAPE is not set
|
||||
# CONFIG_BLK_DEV_DAC960 is not set
|
||||
# CONFIG_BLK_DEV_UMEM is not set
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
# CONFIG_BLK_DEV_NBD is not set
|
||||
@@ -231,6 +232,7 @@ CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
|
||||
#
|
||||
# ATA/ATAPI/MFM/RLL support
|
||||
@@ -322,6 +324,7 @@ CONFIG_BLK_DEV_SD=y
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
|
||||
#
|
||||
# SCSI low-level drivers
|
||||
@@ -358,6 +361,7 @@ CONFIG_SCSI_SATA=y
|
||||
CONFIG_SCSI_ATA_PIIX=y
|
||||
# CONFIG_SCSI_SATA_NV is not set
|
||||
CONFIG_SCSI_SATA_PROMISE=y
|
||||
# CONFIG_SCSI_SATA_QSTOR is not set
|
||||
CONFIG_SCSI_SATA_SX4=y
|
||||
CONFIG_SCSI_SATA_SIL=y
|
||||
# CONFIG_SCSI_SATA_SIS is not set
|
||||
@@ -395,7 +399,6 @@ CONFIG_SCSI_QLA2XXX=y
|
||||
# CONFIG_SCSI_QLA2300 is not set
|
||||
# CONFIG_SCSI_QLA2322 is not set
|
||||
# CONFIG_SCSI_QLA6312 is not set
|
||||
# CONFIG_SCSI_QLA6322 is not set
|
||||
# CONFIG_SCSI_SEAGATE is not set
|
||||
# CONFIG_SCSI_SYM53C416 is not set
|
||||
# CONFIG_SCSI_DC395x is not set
|
||||
@@ -533,14 +536,11 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||
# CONFIG_IP_NF_TARGET_REDIRECT is not set
|
||||
# CONFIG_IP_NF_TARGET_NETMAP is not set
|
||||
# CONFIG_IP_NF_TARGET_SAME is not set
|
||||
# CONFIG_IP_NF_NAT_LOCAL is not set
|
||||
# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
|
||||
CONFIG_IP_NF_NAT_FTP=m
|
||||
# CONFIG_IP_NF_MANGLE is not set
|
||||
# CONFIG_IP_NF_RAW is not set
|
||||
# CONFIG_IP_NF_ARPTABLES is not set
|
||||
# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
|
||||
# CONFIG_IP_NF_COMPAT_IPFWADM is not set
|
||||
|
||||
#
|
||||
# Bridge: Netfilter Configuration
|
||||
@@ -737,6 +737,7 @@ CONFIG_SERIO_I8042=y
|
||||
CONFIG_SERIO_SERPORT=y
|
||||
# CONFIG_SERIO_CT82C710 is not set
|
||||
# CONFIG_SERIO_PCIPS2 is not set
|
||||
CONFIG_SERIO_LIBPS2=y
|
||||
# CONFIG_SERIO_RAW is not set
|
||||
|
||||
#
|
||||
@@ -813,7 +814,7 @@ CONFIG_AGP_SIS=m
|
||||
CONFIG_AGP_SWORKS=m
|
||||
CONFIG_AGP_VIA=m
|
||||
# CONFIG_AGP_EFFICEON is not set
|
||||
CONFIG_DRM=y
|
||||
CONFIG_DRM=m
|
||||
CONFIG_DRM_TDFX=m
|
||||
# CONFIG_DRM_GAMMA is not set
|
||||
CONFIG_DRM_R128=m
|
||||
@@ -903,6 +904,10 @@ CONFIG_REISERFS_FS=y
|
||||
# CONFIG_REISERFS_PROC_INFO is not set
|
||||
# CONFIG_REISERFS_FS_XATTR is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
|
||||
#
|
||||
# XFS support
|
||||
#
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
@@ -1069,6 +1074,11 @@ CONFIG_CRYPTO_DES=m
|
||||
CONFIG_CRYPTO_CRC32C=m
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
|
||||
#
|
||||
# Hardware crypto devices
|
||||
#
|
||||
# CONFIG_CRYPTO_DEV_PADLOCK is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
+17
-8
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.10-xenU
|
||||
# Mon Dec 27 10:15:03 2004
|
||||
# Linux kernel version: 2.6.11-xenU
|
||||
# Fri Mar 11 01:20:28 2005
|
||||
#
|
||||
CONFIG_XEN=y
|
||||
CONFIG_ARCH_XEN=y
|
||||
@@ -12,17 +12,15 @@ CONFIG_NO_IDLE_HZ=y
|
||||
#
|
||||
# CONFIG_XEN_PRIVILEGED_GUEST is not set
|
||||
# CONFIG_XEN_PHYSDEV_ACCESS is not set
|
||||
# CONFIG_XEN_BLKDEV_BACKEND is not set
|
||||
# CONFIG_XEN_NETDEV_BACKEND is not set
|
||||
CONFIG_XEN_BLKDEV_FRONTEND=y
|
||||
CONFIG_XEN_NETDEV_FRONTEND=y
|
||||
# CONFIG_XEN_NETDEV_FRONTEND_PIPELINED_TRANSMITTER is not set
|
||||
# CONFIG_XEN_BLKDEV_TAP is not set
|
||||
CONFIG_XEN_WRITABLE_PAGETABLES=y
|
||||
CONFIG_XEN_SCRUB_PAGES=y
|
||||
CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
|
||||
CONFIG_X86=y
|
||||
# CONFIG_X86_64 is not set
|
||||
CONFIG_HAVE_ARCH_DEV_ALLOC_SKB=y
|
||||
|
||||
#
|
||||
# Code maturity level options
|
||||
@@ -48,7 +46,6 @@ CONFIG_KOBJECT_UEVENT=y
|
||||
# CONFIG_IKCONFIG is not set
|
||||
# CONFIG_EMBEDDED is not set
|
||||
CONFIG_KALLSYMS=y
|
||||
# CONFIG_KALLSYMS_ALL is not set
|
||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_EPOLL=y
|
||||
@@ -104,6 +101,7 @@ CONFIG_X86_CMPXCHG=y
|
||||
CONFIG_X86_XADD=y
|
||||
CONFIG_X86_L1_CACHE_SHIFT=7
|
||||
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
CONFIG_X86_WP_WORKS_OK=y
|
||||
CONFIG_X86_INVLPG=y
|
||||
CONFIG_X86_BSWAP=y
|
||||
@@ -115,6 +113,7 @@ CONFIG_X86_USE_PPRO_CHECKSUM=y
|
||||
# CONFIG_HPET_EMULATE_RTC is not set
|
||||
# CONFIG_SMP is not set
|
||||
CONFIG_PREEMPT=y
|
||||
CONFIG_PREEMPT_BKL=y
|
||||
CONFIG_X86_CPUID=y
|
||||
|
||||
#
|
||||
@@ -156,12 +155,12 @@ CONFIG_BINFMT_ELF=y
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_FW_LOADER is not set
|
||||
# CONFIG_DEBUG_DRIVER is not set
|
||||
|
||||
#
|
||||
# Block devices
|
||||
#
|
||||
# CONFIG_BLK_DEV_FD is not set
|
||||
# CONFIG_BLK_DEV_COW_COMMON is not set
|
||||
CONFIG_BLK_DEV_LOOP=m
|
||||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
@@ -180,6 +179,7 @@ CONFIG_IOSCHED_NOOP=y
|
||||
CONFIG_IOSCHED_AS=y
|
||||
CONFIG_IOSCHED_DEADLINE=y
|
||||
CONFIG_IOSCHED_CFQ=y
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
@@ -208,6 +208,7 @@ CONFIG_BLK_DEV_SD=m
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
|
||||
#
|
||||
# SCSI low-level drivers
|
||||
@@ -340,6 +341,10 @@ CONFIG_REISERFS_FS=y
|
||||
# CONFIG_REISERFS_PROC_INFO is not set
|
||||
# CONFIG_REISERFS_FS_XATTR is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
|
||||
#
|
||||
# XFS support
|
||||
#
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_MINIX_FS is not set
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
@@ -410,7 +415,6 @@ CONFIG_NFS_V3=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
# CONFIG_EXPORTFS is not set
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
@@ -504,6 +508,11 @@ CONFIG_CRYPTO_MD5=m
|
||||
CONFIG_CRYPTO_CRC32C=m
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
|
||||
#
|
||||
# Hardware crypto devices
|
||||
#
|
||||
# CONFIG_CRYPTO_DEV_PADLOCK is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
#
|
||||
+18
-1
@@ -253,6 +253,10 @@ config RWSEM_XCHGADD_ALGORITHM
|
||||
depends on !M386
|
||||
default y
|
||||
|
||||
config GENERIC_CALIBRATE_DELAY
|
||||
bool
|
||||
default y
|
||||
|
||||
config X86_PPRO_FENCE
|
||||
bool
|
||||
depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
|
||||
@@ -395,6 +399,17 @@ config PREEMPT
|
||||
Say Y here if you are building a kernel for a desktop, embedded
|
||||
or real-time system. Say N if you are unsure.
|
||||
|
||||
config PREEMPT_BKL
|
||||
bool "Preempt The Big Kernel Lock"
|
||||
depends on PREEMPT
|
||||
default y
|
||||
help
|
||||
This option reduces the latency of the kernel by making the
|
||||
big kernel lock preemptible.
|
||||
|
||||
Say Y here if you are building a kernel for a desktop system.
|
||||
Say N if you are unsure.
|
||||
|
||||
#config X86_TSC
|
||||
# bool
|
||||
# depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
|
||||
@@ -635,7 +650,7 @@ config REGPARM
|
||||
depends on EXPERIMENTAL
|
||||
default n
|
||||
help
|
||||
Compile the kernel with -mregparm=3. This uses an different ABI
|
||||
Compile the kernel with -mregparm=3. This uses a different ABI
|
||||
and passes the first three arguments of a function call in registers.
|
||||
This will probably break binary only modules.
|
||||
|
||||
@@ -726,6 +741,8 @@ config PCI_DIRECT
|
||||
depends on PCI
|
||||
default y
|
||||
|
||||
source "drivers/pci/pcie/Kconfig"
|
||||
|
||||
source "drivers/pci/Kconfig"
|
||||
|
||||
config ISA
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+69
-20
@@ -10,6 +10,11 @@
|
||||
#include <asm/msr.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
#include <asm/mpspec.h>
|
||||
#include <asm/apic.h>
|
||||
#include <mach_apic.h>
|
||||
#endif
|
||||
#include <asm-xen/hypervisor.h>
|
||||
|
||||
#include "cpu.h"
|
||||
@@ -277,8 +282,10 @@ void __init generic_identify(struct cpuinfo_x86 * c)
|
||||
/* AMD-defined flags: level 0x80000001 */
|
||||
xlvl = cpuid_eax(0x80000000);
|
||||
if ( (xlvl & 0xffff0000) == 0x80000000 ) {
|
||||
if ( xlvl >= 0x80000001 )
|
||||
if ( xlvl >= 0x80000001 ) {
|
||||
c->x86_capability[1] = cpuid_edx(0x80000001);
|
||||
c->x86_capability[6] = cpuid_ecx(0x80000001);
|
||||
}
|
||||
if ( xlvl >= 0x80000004 )
|
||||
get_model_name(c); /* Default name */
|
||||
}
|
||||
@@ -324,6 +331,7 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
|
||||
c->x86_model = c->x86_mask = 0; /* So far unknown... */
|
||||
c->x86_vendor_id[0] = '\0'; /* Unset */
|
||||
c->x86_model_id[0] = '\0'; /* Unset */
|
||||
c->x86_num_cores = 1;
|
||||
memset(&c->x86_capability, 0, sizeof c->x86_capability);
|
||||
|
||||
if (!have_cpuid_p()) {
|
||||
@@ -337,21 +345,19 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
|
||||
|
||||
generic_identify(c);
|
||||
|
||||
printk(KERN_DEBUG "CPU: After generic identify, caps: %08lx %08lx %08lx %08lx\n",
|
||||
c->x86_capability[0],
|
||||
c->x86_capability[1],
|
||||
c->x86_capability[2],
|
||||
c->x86_capability[3]);
|
||||
printk(KERN_DEBUG "CPU: After generic identify, caps:");
|
||||
for (i = 0; i < NCAPINTS; i++)
|
||||
printk(" %08lx", c->x86_capability[i]);
|
||||
printk("\n");
|
||||
|
||||
if (this_cpu->c_identify) {
|
||||
this_cpu->c_identify(c);
|
||||
|
||||
printk(KERN_DEBUG "CPU: After vendor identify, caps: %08lx %08lx %08lx %08lx\n",
|
||||
c->x86_capability[0],
|
||||
c->x86_capability[1],
|
||||
c->x86_capability[2],
|
||||
c->x86_capability[3]);
|
||||
}
|
||||
printk(KERN_DEBUG "CPU: After vendor identify, caps:");
|
||||
for (i = 0; i < NCAPINTS; i++)
|
||||
printk(" %08lx", c->x86_capability[i]);
|
||||
printk("\n");
|
||||
}
|
||||
|
||||
/*
|
||||
* Vendor-specific initialization. In this section we
|
||||
@@ -403,11 +409,10 @@ void __init identify_cpu(struct cpuinfo_x86 *c)
|
||||
|
||||
/* Now the feature flags better reflect actual CPU features! */
|
||||
|
||||
printk(KERN_DEBUG "CPU: After all inits, caps: %08lx %08lx %08lx %08lx\n",
|
||||
c->x86_capability[0],
|
||||
c->x86_capability[1],
|
||||
c->x86_capability[2],
|
||||
c->x86_capability[3]);
|
||||
printk(KERN_DEBUG "CPU: After all inits, caps:");
|
||||
for (i = 0; i < NCAPINTS; i++)
|
||||
printk(" %08lx", c->x86_capability[i]);
|
||||
printk("\n");
|
||||
|
||||
/*
|
||||
* On SMP, boot_cpu_data holds the common feature set between
|
||||
@@ -437,6 +442,50 @@ void __init dodgy_tsc(void)
|
||||
cpu_devs[X86_VENDOR_CYRIX]->c_init(&boot_cpu_data);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_HT
|
||||
void __init detect_ht(struct cpuinfo_x86 *c)
|
||||
{
|
||||
u32 eax, ebx, ecx, edx;
|
||||
int index_lsb, index_msb, tmp;
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
if (!cpu_has(c, X86_FEATURE_HT))
|
||||
return;
|
||||
|
||||
cpuid(1, &eax, &ebx, &ecx, &edx);
|
||||
smp_num_siblings = (ebx & 0xff0000) >> 16;
|
||||
|
||||
if (smp_num_siblings == 1) {
|
||||
printk(KERN_INFO "CPU: Hyper-Threading is disabled\n");
|
||||
} else if (smp_num_siblings > 1 ) {
|
||||
index_lsb = 0;
|
||||
index_msb = 31;
|
||||
|
||||
if (smp_num_siblings > NR_CPUS) {
|
||||
printk(KERN_WARNING "CPU: Unsupported number of the siblings %d", smp_num_siblings);
|
||||
smp_num_siblings = 1;
|
||||
return;
|
||||
}
|
||||
tmp = smp_num_siblings;
|
||||
while ((tmp & 1) == 0) {
|
||||
tmp >>=1 ;
|
||||
index_lsb++;
|
||||
}
|
||||
tmp = smp_num_siblings;
|
||||
while ((tmp & 0x80000000 ) == 0) {
|
||||
tmp <<=1 ;
|
||||
index_msb--;
|
||||
}
|
||||
if (index_lsb != index_msb )
|
||||
index_msb++;
|
||||
phys_proc_id[cpu] = phys_pkg_id((ebx >> 24) & 0xFF, index_msb);
|
||||
|
||||
printk(KERN_INFO "CPU: Physical Processor ID: %d\n",
|
||||
phys_proc_id[cpu]);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void __init print_cpu_info(struct cpuinfo_x86 *c)
|
||||
{
|
||||
char *vendor = NULL;
|
||||
@@ -460,7 +509,7 @@ void __init print_cpu_info(struct cpuinfo_x86 *c)
|
||||
printk("\n");
|
||||
}
|
||||
|
||||
unsigned long cpu_initialized __initdata = 0;
|
||||
cpumask_t cpu_initialized __initdata = CPU_MASK_NONE;
|
||||
|
||||
/* This is hacky. :)
|
||||
* We're emulating future behavior.
|
||||
@@ -533,7 +582,7 @@ void __init cpu_init (void)
|
||||
struct tss_struct * t = &per_cpu(init_tss, cpu);
|
||||
struct thread_struct *thread = ¤t->thread;
|
||||
|
||||
if (test_and_set_bit(cpu, &cpu_initialized)) {
|
||||
if (cpu_test_and_set(cpu, cpu_initialized)) {
|
||||
printk(KERN_WARNING "CPU#%d already initialized!\n", cpu);
|
||||
for (;;) local_irq_enable();
|
||||
}
|
||||
@@ -590,7 +639,7 @@ void __init cpu_init (void)
|
||||
* Force FPU initialization:
|
||||
*/
|
||||
current_thread_info()->status = 0;
|
||||
current->used_math = 0;
|
||||
clear_used_math();
|
||||
mxcsr_feature_mask_init();
|
||||
}
|
||||
|
||||
File renamed without changes.
File renamed without changes.
+2
-5
@@ -230,6 +230,7 @@ ENTRY(resume_userspace)
|
||||
#ifdef CONFIG_PREEMPT
|
||||
ENTRY(resume_kernel)
|
||||
XEN_GET_VCPU_INFO(%esi)
|
||||
XEN_BLOCK_EVENTS(%esi)
|
||||
cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ?
|
||||
jnz restore_all
|
||||
need_resched:
|
||||
@@ -238,11 +239,7 @@ need_resched:
|
||||
jz restore_all
|
||||
testb $0xFF,EVENT_MASK(%esp) # interrupts off (exception path) ?
|
||||
jnz restore_all
|
||||
movl $PREEMPT_ACTIVE,TI_preempt_count(%ebp)
|
||||
XEN_UNBLOCK_EVENTS(%esi)
|
||||
call schedule
|
||||
XEN_BLOCK_EVENTS(%esi)
|
||||
movl $0,TI_preempt_count(%ebp)
|
||||
call preempt_schedule_irq
|
||||
jmp need_resched
|
||||
#endif
|
||||
|
||||
File renamed without changes.
-2
@@ -61,7 +61,6 @@ extern unsigned long get_cmos_time(void);
|
||||
|
||||
/* platform dependent support */
|
||||
EXPORT_SYMBOL(boot_cpu_data);
|
||||
EXPORT_SYMBOL(MCA_bus);
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
EXPORT_SYMBOL(node_data);
|
||||
EXPORT_SYMBOL(physnode_map);
|
||||
@@ -75,7 +74,6 @@ EXPORT_SYMBOL_GPL(kernel_fpu_begin);
|
||||
EXPORT_SYMBOL(__ioremap);
|
||||
EXPORT_SYMBOL(ioremap_nocache);
|
||||
EXPORT_SYMBOL(iounmap);
|
||||
EXPORT_SYMBOL(probe_irq_mask);
|
||||
EXPORT_SYMBOL(kernel_thread);
|
||||
EXPORT_SYMBOL(pm_idle);
|
||||
#ifdef CONFIG_APM
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+10
-4
@@ -17,6 +17,8 @@
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
|
||||
#define pte_offset_kernel pte_offset
|
||||
#define pud_t pgd_t
|
||||
#define pud_offset(d, va) d
|
||||
#endif
|
||||
|
||||
struct dma_coherent_mem {
|
||||
@@ -36,6 +38,7 @@ xen_contig_memory(unsigned long vstart, unsigned int order)
|
||||
* hypercalls reduced.
|
||||
*/
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pte_t *pte;
|
||||
unsigned long pfn, i, flags;
|
||||
@@ -47,7 +50,8 @@ xen_contig_memory(unsigned long vstart, unsigned int order)
|
||||
/* 1. Zap current PTEs, giving away the underlying pages. */
|
||||
for (i = 0; i < (1<<order); i++) {
|
||||
pgd = pgd_offset_k( (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
|
||||
pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE)));
|
||||
pfn = pte->pte_low >> PAGE_SHIFT;
|
||||
queue_l1_entry_update(pte, 0);
|
||||
@@ -63,7 +67,8 @@ xen_contig_memory(unsigned long vstart, unsigned int order)
|
||||
/* 3. Map the new extent in place of old pages. */
|
||||
for (i = 0; i < (1<<order); i++) {
|
||||
pgd = pgd_offset_k( (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
|
||||
pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE)));
|
||||
queue_l1_entry_update(
|
||||
pte, ((pfn+i)<<PAGE_SHIFT)|__PAGE_KERNEL);
|
||||
@@ -173,11 +178,11 @@ int dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
|
||||
if (!mem_base)
|
||||
goto out;
|
||||
|
||||
dev->dma_mem = kmalloc(GFP_KERNEL, sizeof(struct dma_coherent_mem));
|
||||
dev->dma_mem = kmalloc(sizeof(struct dma_coherent_mem), GFP_KERNEL);
|
||||
if (!dev->dma_mem)
|
||||
goto out;
|
||||
memset(dev->dma_mem, 0, sizeof(struct dma_coherent_mem));
|
||||
dev->dma_mem->bitmap = kmalloc(GFP_KERNEL, bitmap_size);
|
||||
dev->dma_mem->bitmap = kmalloc(bitmap_size, GFP_KERNEL);
|
||||
if (!dev->dma_mem->bitmap)
|
||||
goto free1_out;
|
||||
memset(dev->dma_mem->bitmap, 0, bitmap_size);
|
||||
@@ -206,6 +211,7 @@ void dma_release_declared_memory(struct device *dev)
|
||||
if(!mem)
|
||||
return;
|
||||
dev->dma_mem = NULL;
|
||||
iounmap(mem->virt_base);
|
||||
kfree(mem->bitmap);
|
||||
kfree(mem);
|
||||
}
|
||||
+26
-9
@@ -74,6 +74,7 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
|
||||
* Powermanagement idle function, if any..
|
||||
*/
|
||||
void (*pm_idle)(void);
|
||||
static cpumask_t cpu_idle_map;
|
||||
|
||||
void disable_hlt(void)
|
||||
{
|
||||
@@ -120,23 +121,39 @@ void xen_idle(void)
|
||||
*/
|
||||
void cpu_idle (void)
|
||||
{
|
||||
int cpu = _smp_processor_id();
|
||||
|
||||
/* endless idle loop with no priority at all */
|
||||
while (1) {
|
||||
while (!need_resched()) {
|
||||
/*
|
||||
* Mark this as an RCU critical section so that
|
||||
* synchronize_kernel() in the unload path waits
|
||||
* for our completion.
|
||||
*/
|
||||
rcu_read_lock();
|
||||
irq_stat[smp_processor_id()].idle_timestamp = jiffies;
|
||||
|
||||
if (cpu_isset(cpu, cpu_idle_map))
|
||||
cpu_clear(cpu, cpu_idle_map);
|
||||
rmb();
|
||||
|
||||
irq_stat[cpu].idle_timestamp = jiffies;
|
||||
xen_idle();
|
||||
rcu_read_unlock();
|
||||
}
|
||||
schedule();
|
||||
}
|
||||
}
|
||||
|
||||
void cpu_idle_wait(void)
|
||||
{
|
||||
int cpu;
|
||||
cpumask_t map;
|
||||
|
||||
for_each_online_cpu(cpu)
|
||||
cpu_set(cpu, cpu_idle_map);
|
||||
|
||||
wmb();
|
||||
do {
|
||||
ssleep(1);
|
||||
cpus_and(map, cpu_idle_map, cpu_online_map);
|
||||
} while (!cpus_empty(map));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cpu_idle_wait);
|
||||
|
||||
/* XXX XEN doesn't use mwait_idle(), select_idle_routine(), idle_setup(). */
|
||||
/* Always use xen_idle() instead. */
|
||||
void __init select_idle_routine(const struct cpuinfo_x86 *c) {}
|
||||
@@ -238,7 +255,7 @@ void flush_thread(void)
|
||||
* Forget coprocessor state..
|
||||
*/
|
||||
clear_fpu(tsk);
|
||||
tsk->used_math = 0;
|
||||
clear_used_math();
|
||||
}
|
||||
|
||||
void release_thread(struct task_struct *dead_task)
|
||||
+71
-13
@@ -33,6 +33,7 @@
|
||||
#include <linux/bootmem.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/mca.h>
|
||||
#include <linux/root_dev.h>
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/module.h>
|
||||
@@ -87,7 +88,6 @@ int __initdata acpi_force = 0;
|
||||
extern acpi_interrupt_flags acpi_sci_flags;
|
||||
#endif
|
||||
|
||||
int MCA_bus;
|
||||
/* for MCA, but anyone else can use it if they want */
|
||||
unsigned int machine_id;
|
||||
unsigned int machine_submodel_id;
|
||||
@@ -97,6 +97,9 @@ unsigned int mca_pentium_flag;
|
||||
/* For PCI or other memory-mapped resources */
|
||||
unsigned long pci_mem_start = 0x10000000;
|
||||
|
||||
/* Boot loader ID as an integer, for the benefit of proc_dointvec */
|
||||
int bootloader_type;
|
||||
|
||||
/* user-defined highmem size */
|
||||
static unsigned int highmem_pages = -1;
|
||||
|
||||
@@ -695,6 +698,8 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
|
||||
|
||||
for (;;) {
|
||||
if (c != ' ')
|
||||
goto next_char;
|
||||
/*
|
||||
* "mem=nopentium" disables the 4MB page tables.
|
||||
* "mem=XXX[kKmM]" defines a memory region from HIGH_MEM
|
||||
@@ -705,7 +710,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
* HPA tells me bootloaders need to parse mem=, so no new
|
||||
* option should be mem= [also see Documentation/i386/boot.txt]
|
||||
*/
|
||||
if (c == ' ' && !memcmp(from, "mem=", 4)) {
|
||||
if (!memcmp(from, "mem=", 4)) {
|
||||
if (to != command_line)
|
||||
to--;
|
||||
if (!memcmp(from+4, "nopentium", 9)) {
|
||||
@@ -732,7 +737,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
}
|
||||
}
|
||||
|
||||
if (c == ' ' && !memcmp(from, "memmap=", 7)) {
|
||||
else if (!memcmp(from, "memmap=", 7)) {
|
||||
if (to != command_line)
|
||||
to--;
|
||||
if (!memcmp(from+7, "exactmap", 8)) {
|
||||
@@ -765,6 +770,10 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
}
|
||||
}
|
||||
|
||||
else if (!memcmp(from, "noexec=", 7))
|
||||
noexec_setup(from + 7);
|
||||
|
||||
|
||||
#ifdef CONFIG_X86_SMP
|
||||
/*
|
||||
* If the BIOS enumerates physical processors before logical,
|
||||
@@ -840,7 +849,7 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
* This works even on boxes that have no highmem otherwise.
|
||||
* This also works to reduce highmem size on bigger boxes.
|
||||
*/
|
||||
if (c == ' ' && !memcmp(from, "highmem=", 8))
|
||||
else if (!memcmp(from, "highmem=", 8))
|
||||
highmem_pages = memparse(from+8, &from) >> PAGE_SHIFT;
|
||||
|
||||
/*
|
||||
@@ -848,9 +857,10 @@ static void __init parse_cmdline_early (char ** cmdline_p)
|
||||
* bytes. This can be used to increase (or decrease) the
|
||||
* vmalloc area - the default is 128m.
|
||||
*/
|
||||
if (c == ' ' && !memcmp(from, "vmalloc=", 8))
|
||||
else if (!memcmp(from, "vmalloc=", 8))
|
||||
__VMALLOC_RESERVE = memparse(from+8, &from);
|
||||
|
||||
next_char:
|
||||
c = *(from++);
|
||||
if (!c)
|
||||
break;
|
||||
@@ -1192,9 +1202,10 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat
|
||||
/*
|
||||
* Request address space for all standard resources
|
||||
*/
|
||||
static void __init register_memory(unsigned long max_low_pfn)
|
||||
static void __init register_memory(void)
|
||||
{
|
||||
unsigned long low_mem_size;
|
||||
unsigned long gapstart, gapsize;
|
||||
unsigned long long last;
|
||||
int i;
|
||||
|
||||
if (efi_enabled)
|
||||
@@ -1209,10 +1220,46 @@ static void __init register_memory(unsigned long max_low_pfn)
|
||||
for (i = 0; i < STANDARD_IO_RESOURCES; i++)
|
||||
request_resource(&ioport_resource, &standard_io_resources[i]);
|
||||
|
||||
/* Tell the PCI layer not to allocate too close to the RAM area.. */
|
||||
low_mem_size = ((max_low_pfn << PAGE_SHIFT) + 0xfffff) & ~0xfffff;
|
||||
if (low_mem_size > pci_mem_start)
|
||||
pci_mem_start = low_mem_size;
|
||||
/*
|
||||
* Search for the bigest gap in the low 32 bits of the e820
|
||||
* memory space.
|
||||
*/
|
||||
last = 0x100000000ull;
|
||||
gapstart = 0x10000000;
|
||||
gapsize = 0x400000;
|
||||
i = e820.nr_map;
|
||||
while (--i >= 0) {
|
||||
unsigned long long start = e820.map[i].addr;
|
||||
unsigned long long end = start + e820.map[i].size;
|
||||
|
||||
/*
|
||||
* Since "last" is at most 4GB, we know we'll
|
||||
* fit in 32 bits if this condition is true
|
||||
*/
|
||||
if (last > end) {
|
||||
unsigned long gap = last - end;
|
||||
|
||||
if (gap > gapsize) {
|
||||
gapsize = gap;
|
||||
gapstart = end;
|
||||
}
|
||||
}
|
||||
if (start < last)
|
||||
last = start;
|
||||
}
|
||||
|
||||
/*
|
||||
* Start allocating dynamic PCI memory a bit into the gap,
|
||||
* aligned up to the nearest megabyte.
|
||||
*
|
||||
* Question: should we try to pad it up a bit (do something
|
||||
* like " + (gapsize >> 3)" in there too?). We now have the
|
||||
* technology.
|
||||
*/
|
||||
pci_mem_start = (gapstart + 0xfffff) & ~0xfffff;
|
||||
|
||||
printk("Allocating PCI resources starting at %08lx (gap: %08lx:%08lx)\n",
|
||||
pci_mem_start, gapstart, gapsize);
|
||||
}
|
||||
|
||||
/* Use inline assembly to define this because the nops are defined
|
||||
@@ -1324,6 +1371,15 @@ __setup("noreplacement", noreplacement_setup);
|
||||
|
||||
static char * __init machine_specific_memory_setup(void);
|
||||
|
||||
#ifdef CONFIG_MCA
|
||||
static void set_mca_bus(int x)
|
||||
{
|
||||
MCA_bus = x;
|
||||
}
|
||||
#else
|
||||
static void set_mca_bus(int x) { }
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Determine if we were loaded by an EFI loader. If so, then we have also been
|
||||
* passed the efi memmap, systab, etc., so we should use these data structures
|
||||
@@ -1371,12 +1427,13 @@ void __init setup_arch(char **cmdline_p)
|
||||
ist_info = IST_INFO;
|
||||
saved_videomode = VIDEO_MODE;
|
||||
if( SYS_DESC_TABLE.length != 0 ) {
|
||||
MCA_bus = SYS_DESC_TABLE.table[3] &0x2;
|
||||
set_mca_bus(SYS_DESC_TABLE.table[3] & 0x2);
|
||||
machine_id = SYS_DESC_TABLE.table[0];
|
||||
machine_submodel_id = SYS_DESC_TABLE.table[1];
|
||||
BIOS_revision = SYS_DESC_TABLE.table[2];
|
||||
}
|
||||
aux_device_present = AUX_DEVICE_INFO;
|
||||
bootloader_type = LOADER_TYPE;
|
||||
|
||||
#ifdef CONFIG_XEN_PHYSDEV_ACCESS
|
||||
/* This is drawn from a dump from vgacon:startup in standard Linux. */
|
||||
@@ -1488,6 +1545,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
/*
|
||||
* Parse the ACPI tables for possible boot-time SMP configuration.
|
||||
*/
|
||||
acpi_boot_table_init();
|
||||
acpi_boot_init();
|
||||
|
||||
#ifdef CONFIG_X86_LOCAL_APIC
|
||||
@@ -1499,7 +1557,7 @@ void __init setup_arch(char **cmdline_p)
|
||||
* conflicts. */
|
||||
noirqdebug_setup("");
|
||||
|
||||
register_memory(max_low_pfn);
|
||||
register_memory();
|
||||
|
||||
/* If we are a privileged guest OS then we should request IO privs. */
|
||||
if (xen_start_info.flags & SIF_PRIVILEGED) {
|
||||
+18
-26
@@ -190,6 +190,12 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *peax
|
||||
if (verify_area(VERIFY_READ, buf, sizeof(*buf)))
|
||||
goto badframe;
|
||||
err |= restore_i387(buf);
|
||||
} else {
|
||||
struct task_struct *me = current;
|
||||
if (used_math()) {
|
||||
clear_fpu(me);
|
||||
clear_used_math();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,7 +276,6 @@ setup_sigcontext(struct sigcontext __user *sc, struct _fpstate __user *fpstate,
|
||||
struct pt_regs *regs, unsigned long mask)
|
||||
{
|
||||
int tmp, err = 0;
|
||||
unsigned long eflags;
|
||||
|
||||
tmp = 0;
|
||||
__asm__("movl %%gs,%0" : "=r"(tmp): "0"(tmp));
|
||||
@@ -292,16 +297,7 @@ setup_sigcontext(struct sigcontext __user *sc, struct _fpstate __user *fpstate,
|
||||
err |= __put_user(current->thread.error_code, &sc->err);
|
||||
err |= __put_user(regs->eip, &sc->eip);
|
||||
err |= __put_user(regs->xcs, (unsigned int __user *)&sc->cs);
|
||||
|
||||
/*
|
||||
* Iff TF was set because the program is being single-stepped by a
|
||||
* debugger, don't save that information on the signal stack.. We
|
||||
* don't want debugging to change state.
|
||||
*/
|
||||
eflags = regs->eflags;
|
||||
if (current->ptrace & PT_DTRACE)
|
||||
eflags &= ~TF_MASK;
|
||||
err |= __put_user(eflags, &sc->eflags);
|
||||
err |= __put_user(regs->eflags, &sc->eflags);
|
||||
err |= __put_user(regs->esp, &sc->esp_at_signal);
|
||||
err |= __put_user(regs->xss, (unsigned int __user *)&sc->ss);
|
||||
|
||||
@@ -369,20 +365,20 @@ static void setup_frame(int sig, struct k_sigaction *ka,
|
||||
? current_thread_info()->exec_domain->signal_invmap[sig]
|
||||
: sig;
|
||||
|
||||
err |= __put_user(usig, &frame->sig);
|
||||
err = __put_user(usig, &frame->sig);
|
||||
if (err)
|
||||
goto give_sigsegv;
|
||||
|
||||
err |= setup_sigcontext(&frame->sc, &frame->fpstate, regs, set->sig[0]);
|
||||
err = setup_sigcontext(&frame->sc, &frame->fpstate, regs, set->sig[0]);
|
||||
if (err)
|
||||
goto give_sigsegv;
|
||||
|
||||
if (_NSIG_WORDS > 1) {
|
||||
err |= __copy_to_user(&frame->extramask, &set->sig[1],
|
||||
err = __copy_to_user(&frame->extramask, &set->sig[1],
|
||||
sizeof(frame->extramask));
|
||||
if (err)
|
||||
goto give_sigsegv;
|
||||
}
|
||||
if (err)
|
||||
goto give_sigsegv;
|
||||
|
||||
restorer = &__kernel_sigreturn;
|
||||
if (ka->sa.sa_flags & SA_RESTORER)
|
||||
@@ -424,11 +420,9 @@ static void setup_frame(int sig, struct k_sigaction *ka,
|
||||
* The tracer may want to single-step inside the
|
||||
* handler too.
|
||||
*/
|
||||
if (regs->eflags & TF_MASK) {
|
||||
regs->eflags &= ~TF_MASK;
|
||||
if (current->ptrace & PT_DTRACE)
|
||||
ptrace_notify(SIGTRAP);
|
||||
}
|
||||
regs->eflags &= ~TF_MASK;
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
#if DEBUG_SIG
|
||||
printk("SIG deliver (%s:%d): sp=%p pc=%p ra=%p\n",
|
||||
@@ -519,11 +513,9 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
|
||||
* The tracer may want to single-step inside the
|
||||
* handler too.
|
||||
*/
|
||||
if (regs->eflags & TF_MASK) {
|
||||
regs->eflags &= ~TF_MASK;
|
||||
if (current->ptrace & PT_DTRACE)
|
||||
ptrace_notify(SIGTRAP);
|
||||
}
|
||||
regs->eflags &= ~TF_MASK;
|
||||
if (test_thread_flag(TIF_SINGLESTEP))
|
||||
ptrace_notify(SIGTRAP);
|
||||
|
||||
#if DEBUG_SIG
|
||||
printk("SIG deliver (%s:%d): sp=%p pc=%p ra=%p\n",
|
||||
+6
-4
@@ -45,6 +45,7 @@
|
||||
#include <linux/sysdev.h>
|
||||
#include <linux/bcd.h>
|
||||
#include <linux/efi.h>
|
||||
#include <linux/mca.h>
|
||||
#include <linux/sysctl.h>
|
||||
#include <linux/percpu.h>
|
||||
|
||||
@@ -80,9 +81,9 @@ unsigned long cpu_khz; /* Detected as we calibrate the TSC */
|
||||
|
||||
extern unsigned long wall_jiffies;
|
||||
|
||||
spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
|
||||
DEFINE_SPINLOCK(rtc_lock);
|
||||
|
||||
spinlock_t i8253_lock = SPIN_LOCK_UNLOCKED;
|
||||
DEFINE_SPINLOCK(i8253_lock);
|
||||
EXPORT_SYMBOL(i8253_lock);
|
||||
|
||||
extern struct init_timer_opts timer_tsc_init;
|
||||
@@ -561,12 +562,13 @@ static int timer_resume(struct sys_device *dev)
|
||||
hpet_reenable();
|
||||
#endif
|
||||
sec = get_cmos_time() + clock_cmos_diff;
|
||||
sleep_length = get_cmos_time() - sleep_start;
|
||||
sleep_length = (get_cmos_time() - sleep_start) * HZ;
|
||||
write_seqlock_irqsave(&xtime_lock, flags);
|
||||
xtime.tv_sec = sec;
|
||||
xtime.tv_nsec = 0;
|
||||
write_sequnlock_irqrestore(&xtime_lock, flags);
|
||||
jiffies += sleep_length * HZ;
|
||||
jiffies += sleep_length;
|
||||
wall_jiffies += sleep_length;
|
||||
return 0;
|
||||
}
|
||||
|
||||
File renamed without changes.
File renamed without changes.
+19
-28
@@ -90,7 +90,7 @@ asmlinkage void machine_check(void);
|
||||
|
||||
static int kstack_depth_to_print = 24;
|
||||
struct notifier_block *i386die_chain;
|
||||
static spinlock_t die_notifier_lock = SPIN_LOCK_UNLOCKED;
|
||||
static DEFINE_SPINLOCK(die_notifier_lock);
|
||||
|
||||
int register_die_notifier(struct notifier_block *nb)
|
||||
{
|
||||
@@ -303,7 +303,7 @@ void die(const char * str, struct pt_regs * regs, long err)
|
||||
};
|
||||
static int die_counter;
|
||||
|
||||
if (die.lock_owner != smp_processor_id()) {
|
||||
if (die.lock_owner != _smp_processor_id()) {
|
||||
console_verbose();
|
||||
spin_lock_irq(&die.lock);
|
||||
die.lock_owner = smp_processor_id();
|
||||
@@ -543,7 +543,7 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
|
||||
printk("Do you have a strange power saving mode enabled?\n");
|
||||
}
|
||||
|
||||
static spinlock_t nmi_print_lock = SPIN_LOCK_UNLOCKED;
|
||||
static DEFINE_SPINLOCK(nmi_print_lock);
|
||||
|
||||
void die_nmi (struct pt_regs *regs, const char *msg)
|
||||
{
|
||||
@@ -674,7 +674,6 @@ fastcall void do_debug(struct pt_regs * regs, long error_code)
|
||||
{
|
||||
unsigned int condition;
|
||||
struct task_struct *tsk = current;
|
||||
siginfo_t info;
|
||||
|
||||
condition = HYPERVISOR_get_debugreg(6);
|
||||
|
||||
@@ -699,36 +698,29 @@ fastcall void do_debug(struct pt_regs * regs, long error_code)
|
||||
/* Save debug status register where ptrace can see it */
|
||||
tsk->thread.debugreg[6] = condition;
|
||||
|
||||
/* Mask out spurious TF errors due to lazy TF clearing */
|
||||
/*
|
||||
* Single-stepping through TF: make sure we ignore any events in
|
||||
* kernel space (but re-enable TF when returning to user mode).
|
||||
* And if the event was due to a debugger (PT_DTRACE), clear the
|
||||
* TF flag so that register information is correct.
|
||||
*/
|
||||
if (condition & DR_STEP) {
|
||||
/*
|
||||
* The TF error should be masked out only if the current
|
||||
* process is not traced and if the TRAP flag has been set
|
||||
* previously by a tracing process (condition detected by
|
||||
* the PT_DTRACE flag); remember that the i386 TRAP flag
|
||||
* can be modified by the process itself in user mode,
|
||||
* allowing programs to debug themselves without the ptrace()
|
||||
* interface.
|
||||
* We already checked v86 mode above, so we can
|
||||
* check for kernel mode by just checking the CPL
|
||||
* of CS.
|
||||
*/
|
||||
if ((regs->xcs & 2) == 0)
|
||||
goto clear_TF_reenable;
|
||||
if ((tsk->ptrace & (PT_DTRACE|PT_PTRACED)) == PT_DTRACE)
|
||||
goto clear_TF;
|
||||
|
||||
if (likely(tsk->ptrace & PT_DTRACE)) {
|
||||
tsk->ptrace &= ~PT_DTRACE;
|
||||
regs->eflags &= ~TF_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
/* Ok, finally something we can handle */
|
||||
tsk->thread.trap_no = 1;
|
||||
tsk->thread.error_code = error_code;
|
||||
info.si_signo = SIGTRAP;
|
||||
info.si_errno = 0;
|
||||
info.si_code = TRAP_BRKPT;
|
||||
|
||||
/* If this is a kernel mode trap, save the user PC on entry to
|
||||
* the kernel, that's what the debugger can make sense of.
|
||||
*/
|
||||
info.si_addr = ((regs->xcs & 2) == 0) ? (void __user *)tsk->thread.eip
|
||||
: (void __user *)regs->eip;
|
||||
force_sig_info(SIGTRAP, &info, tsk);
|
||||
send_sigtrap(tsk, regs, error_code);
|
||||
|
||||
/* Disable additional traps. They'll be re-enabled when
|
||||
* the signal is delivered.
|
||||
@@ -743,7 +735,6 @@ debug_vm86:
|
||||
|
||||
clear_TF_reenable:
|
||||
set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
|
||||
clear_TF:
|
||||
regs->eflags &= ~TF_MASK;
|
||||
return;
|
||||
}
|
||||
@@ -903,7 +894,7 @@ asmlinkage void math_state_restore(struct pt_regs regs)
|
||||
struct task_struct *tsk = thread->task;
|
||||
|
||||
/* NB. 'clts' is done for us by Xen during virtual trap. */
|
||||
if (!tsk->used_math)
|
||||
if (!tsk_used_math(tsk))
|
||||
init_fpu(tsk);
|
||||
restore_fpu(tsk);
|
||||
thread->status |= TS_USEDFPU; /* So we fnsave on switch_to() */
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
+11
-6
@@ -115,9 +115,7 @@ static inline unsigned long get_segment_eip(struct pt_regs *regs,
|
||||
}
|
||||
|
||||
/* Decode the code segment base from the descriptor */
|
||||
base = (desc[0] >> 16) |
|
||||
((desc[1] & 0xff) << 16) |
|
||||
(desc[1] & 0xff000000);
|
||||
base = get_desc_base((unsigned long *)desc);
|
||||
|
||||
if (seg & (1<<2)) {
|
||||
up(¤t->mm->context.sem);
|
||||
@@ -529,6 +527,7 @@ vmalloc_fault:
|
||||
*/
|
||||
int index = pgd_index(address);
|
||||
pgd_t *pgd, *pgd_k;
|
||||
pud_t *pud, *pud_k;
|
||||
pmd_t *pmd, *pmd_k;
|
||||
pte_t *pte_k;
|
||||
|
||||
@@ -540,11 +539,17 @@ vmalloc_fault:
|
||||
|
||||
/*
|
||||
* set_pgd(pgd, *pgd_k); here would be useless on PAE
|
||||
* and redundant with the set_pmd() on non-PAE.
|
||||
* and redundant with the set_pmd() on non-PAE. As would
|
||||
* set_pud.
|
||||
*/
|
||||
|
||||
pmd = pmd_offset(pgd, address);
|
||||
pmd_k = pmd_offset(pgd_k, address);
|
||||
pud = pud_offset(pgd, address);
|
||||
pud_k = pud_offset(pgd_k, address);
|
||||
if (!pud_present(*pud_k))
|
||||
goto no_context;
|
||||
|
||||
pmd = pmd_offset(pud, address);
|
||||
pmd_k = pmd_offset(pud_k, address);
|
||||
if (!pmd_present(*pmd_k))
|
||||
goto no_context;
|
||||
set_pmd(pmd, *pmd_k);
|
||||
+3
-3
@@ -3,7 +3,7 @@
|
||||
void *kmap(struct page *page)
|
||||
{
|
||||
might_sleep();
|
||||
if (page < highmem_start_page)
|
||||
if (!PageHighMem(page))
|
||||
return page_address(page);
|
||||
return kmap_high(page);
|
||||
}
|
||||
@@ -12,7 +12,7 @@ void kunmap(struct page *page)
|
||||
{
|
||||
if (in_interrupt())
|
||||
BUG();
|
||||
if (page < highmem_start_page)
|
||||
if (!PageHighMem(page))
|
||||
return;
|
||||
kunmap_high(page);
|
||||
}
|
||||
@@ -32,7 +32,7 @@ void *kmap_atomic(struct page *page, enum km_type type)
|
||||
|
||||
/* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
|
||||
inc_preempt_count();
|
||||
if (page < highmem_start_page)
|
||||
if (!PageHighMem(page))
|
||||
return page_address(page);
|
||||
|
||||
idx = type + KM_TYPE_NR*smp_processor_id();
|
||||
+11
-5
@@ -52,11 +52,15 @@ static spinlock_t update_lock = SPIN_LOCK_UNLOCKED;
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
|
||||
#define QUEUE_SIZE 2048
|
||||
#define pte_offset_kernel pte_offset
|
||||
#define pmd_val_ma(v) (v).pmd;
|
||||
#define pud_t pgd_t
|
||||
#define pud_offset(d, va) d
|
||||
#else
|
||||
#ifdef CONFIG_SMP
|
||||
#define QUEUE_SIZE 1
|
||||
#else
|
||||
#define QUEUE_SIZE 128
|
||||
#define pmd_val_ma(v) (v).pud.pgd.pgd;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -136,7 +140,7 @@ void queue_l1_entry_update(pte_t *ptr, unsigned long val)
|
||||
spin_unlock_irqrestore(&update_lock, flags);
|
||||
}
|
||||
|
||||
void queue_l2_entry_update(pmd_t *ptr, unsigned long val)
|
||||
void queue_l2_entry_update(pmd_t *ptr, pmd_t val)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
int idx;
|
||||
@@ -144,7 +148,7 @@ void queue_l2_entry_update(pmd_t *ptr, unsigned long val)
|
||||
spin_lock_irqsave(&update_lock, flags);
|
||||
idx = per_cpu(mmu_update_queue_idx, cpu);
|
||||
per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
|
||||
per_cpu(update_queue[idx], cpu).val = val;
|
||||
per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val);
|
||||
increment_index();
|
||||
spin_unlock_irqrestore(&update_lock, flags);
|
||||
}
|
||||
@@ -286,7 +290,7 @@ void xen_l1_entry_update(pte_t *ptr, unsigned long val)
|
||||
spin_unlock_irqrestore(&update_lock, flags);
|
||||
}
|
||||
|
||||
void xen_l2_entry_update(pmd_t *ptr, unsigned long val)
|
||||
void xen_l2_entry_update(pmd_t *ptr, pmd_t val)
|
||||
{
|
||||
int cpu = smp_processor_id();
|
||||
int idx;
|
||||
@@ -294,7 +298,7 @@ void xen_l2_entry_update(pmd_t *ptr, unsigned long val)
|
||||
spin_lock_irqsave(&update_lock, flags);
|
||||
idx = per_cpu(mmu_update_queue_idx, cpu);
|
||||
per_cpu(update_queue[idx], cpu).ptr = virt_to_machine(ptr);
|
||||
per_cpu(update_queue[idx], cpu).val = val;
|
||||
per_cpu(update_queue[idx], cpu).val = pmd_val_ma(val);
|
||||
increment_index_and_flush();
|
||||
spin_unlock_irqrestore(&update_lock, flags);
|
||||
}
|
||||
@@ -427,6 +431,7 @@ void xen_machphys_update(unsigned long mfn, unsigned long pfn)
|
||||
unsigned long allocate_empty_lowmem_region(unsigned long pages)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pte_t *pte;
|
||||
unsigned long *pfn_array;
|
||||
@@ -447,7 +452,8 @@ unsigned long allocate_empty_lowmem_region(unsigned long pages)
|
||||
for ( i = 0; i < (1<<order); i++ )
|
||||
{
|
||||
pgd = pgd_offset_k( (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pud = pud_offset(pgd, (vstart + (i*PAGE_SIZE)));
|
||||
pmd = pmd_offset(pud, (vstart + (i*PAGE_SIZE)));
|
||||
pte = pte_offset_kernel(pmd, (vstart + (i*PAGE_SIZE)));
|
||||
pfn_array[i] = pte->pte_low >> PAGE_SHIFT;
|
||||
queue_l1_entry_update(pte, 0);
|
||||
+14
-12
@@ -55,15 +55,18 @@ static int noinline do_test_wp_bit(void);
|
||||
*/
|
||||
static pmd_t * __init one_md_table_init(pgd_t *pgd)
|
||||
{
|
||||
pud_t *pud;
|
||||
pmd_t *pmd_table;
|
||||
|
||||
#ifdef CONFIG_X86_PAE
|
||||
pmd_table = (pmd_t *) alloc_bootmem_low_pages(PAGE_SIZE);
|
||||
set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
|
||||
if (pmd_table != pmd_offset(pgd, 0))
|
||||
pud = pud_offset(pgd, 0);
|
||||
if (pmd_table != pmd_offset(pud, 0))
|
||||
BUG();
|
||||
#else
|
||||
pmd_table = pmd_offset(pgd, 0);
|
||||
pud = pud_offset(pgd, 0);
|
||||
pmd_table = pmd_offset(pud, 0);
|
||||
#endif
|
||||
|
||||
return pmd_table;
|
||||
@@ -102,6 +105,7 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
|
||||
static void __init page_table_range_init (unsigned long start, unsigned long end, pgd_t *pgd_base)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
int pgd_idx, pmd_idx;
|
||||
unsigned long vaddr;
|
||||
@@ -114,8 +118,8 @@ static void __init page_table_range_init (unsigned long start, unsigned long end
|
||||
for ( ; (pgd_idx < PTRS_PER_PGD_NO_HV) && (vaddr != end); pgd++, pgd_idx++) {
|
||||
if (pgd_none(*pgd))
|
||||
one_md_table_init(pgd);
|
||||
|
||||
pmd = pmd_offset(pgd, vaddr);
|
||||
pud = pud_offset(pgd, vaddr);
|
||||
pmd = pmd_offset(pud, vaddr);
|
||||
for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end); pmd++, pmd_idx++) {
|
||||
if (pmd_none(*pmd))
|
||||
one_page_table_init(pmd);
|
||||
@@ -128,7 +132,7 @@ static void __init page_table_range_init (unsigned long start, unsigned long end
|
||||
|
||||
static inline int is_kernel_text(unsigned long addr)
|
||||
{
|
||||
if (addr >= (unsigned long)_stext && addr <= (unsigned long)__init_end)
|
||||
if (addr >= PAGE_OFFSET && addr <= (unsigned long)__init_end)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
@@ -249,7 +253,7 @@ EXPORT_SYMBOL(kmap_prot);
|
||||
EXPORT_SYMBOL(kmap_pte);
|
||||
|
||||
#define kmap_get_fixmap_pte(vaddr) \
|
||||
pte_offset_kernel(pmd_offset(pgd_offset_k(vaddr), (vaddr)), (vaddr))
|
||||
pte_offset_kernel(pmd_offset(pud_offset(pgd_offset_k(vaddr), vaddr), (vaddr)), (vaddr))
|
||||
|
||||
void __init kmap_init(void)
|
||||
{
|
||||
@@ -265,6 +269,7 @@ void __init kmap_init(void)
|
||||
void __init permanent_kmaps_init(pgd_t *pgd_base)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pte_t *pte;
|
||||
unsigned long vaddr;
|
||||
@@ -273,7 +278,8 @@ void __init permanent_kmaps_init(pgd_t *pgd_base)
|
||||
page_table_range_init(vaddr, vaddr + PAGE_SIZE*LAST_PKMAP, pgd_base);
|
||||
|
||||
pgd = swapper_pg_dir + pgd_index(vaddr);
|
||||
pmd = pmd_offset(pgd, vaddr);
|
||||
pud = pud_offset(pgd, vaddr);
|
||||
pmd = pmd_offset(pud, vaddr);
|
||||
pte = pte_offset_kernel(pmd, vaddr);
|
||||
pkmap_page_table = pte;
|
||||
}
|
||||
@@ -464,7 +470,7 @@ u64 __supported_pte_mask = ~_PAGE_NX;
|
||||
* on Enable
|
||||
* off Disable
|
||||
*/
|
||||
static int __init noexec_setup(char *str)
|
||||
void __init noexec_setup(const char *str)
|
||||
{
|
||||
if (!strncmp(str, "on",2) && cpu_has_nx) {
|
||||
__supported_pte_mask |= _PAGE_NX;
|
||||
@@ -473,11 +479,8 @@ static int __init noexec_setup(char *str)
|
||||
disable_nx = 1;
|
||||
__supported_pte_mask &= ~_PAGE_NX;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
__setup("noexec=", noexec_setup);
|
||||
|
||||
int nx_enabled = 0;
|
||||
#ifdef CONFIG_X86_PAE
|
||||
|
||||
@@ -607,7 +610,6 @@ void __init test_wp_bit(void)
|
||||
static void __init set_max_mapnr_init(void)
|
||||
{
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
highmem_start_page = pfn_to_page(highstart_pfn);
|
||||
max_mapnr = num_physpages = highend_pfn;
|
||||
#else
|
||||
max_mapnr = num_physpages = max_low_pfn;
|
||||
+11
-6
@@ -121,7 +121,7 @@ void __iomem * __ioremap(unsigned long phys_addr, unsigned long size, unsigned l
|
||||
/*
|
||||
* Ok, go for it..
|
||||
*/
|
||||
area = get_vm_area(size, VM_IOREMAP);
|
||||
area = get_vm_area(size, VM_IOREMAP | (flags << 20));
|
||||
if (!area)
|
||||
return NULL;
|
||||
area->phys_addr = phys_addr;
|
||||
@@ -206,11 +206,12 @@ void iounmap(volatile void __iomem *addr)
|
||||
if (!p) {
|
||||
printk("__iounmap: bad address %p\n", addr);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (p->flags && is_local_lowmem(p->phys_addr)) {
|
||||
if ((p->flags >> 20) && is_local_lowmem(p->phys_addr)) {
|
||||
/* p->size includes the guard page, but cpa doesn't like that */
|
||||
change_page_attr(virt_to_page(bus_to_virt(p->phys_addr)),
|
||||
p->size >> PAGE_SHIFT,
|
||||
(p->size - PAGE_SIZE) >> PAGE_SHIFT,
|
||||
PAGE_KERNEL);
|
||||
global_flush_tlb();
|
||||
}
|
||||
@@ -361,10 +362,14 @@ int __direct_remap_area_pages(struct mm_struct *mm,
|
||||
BUG();
|
||||
spin_lock(&mm->page_table_lock);
|
||||
do {
|
||||
error = -ENOMEM;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
|
||||
pmd = pmd_alloc(mm, dir, address);
|
||||
error = -ENOMEM;
|
||||
pud = pud_alloc(mm, dir, address);
|
||||
if (!pud)
|
||||
break;
|
||||
pmd = pmd_alloc(mm, pud, address);
|
||||
if (!pmd)
|
||||
break;
|
||||
error = 0;
|
||||
+30
-19
@@ -13,17 +13,21 @@
|
||||
#include <asm/processor.h>
|
||||
#include <asm/tlbflush.h>
|
||||
|
||||
static spinlock_t cpa_lock = SPIN_LOCK_UNLOCKED;
|
||||
static DEFINE_SPINLOCK(cpa_lock);
|
||||
static struct list_head df_list = LIST_HEAD_INIT(df_list);
|
||||
|
||||
|
||||
pte_t *lookup_address(unsigned long address)
|
||||
{
|
||||
pgd_t *pgd = pgd_offset_k(address);
|
||||
pgd_t *pgd = pgd_offset_k(address);
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
if (pgd_none(*pgd))
|
||||
return NULL;
|
||||
pmd = pmd_offset(pgd, address);
|
||||
pud = pud_offset(pgd, address);
|
||||
if (pud_none(*pud))
|
||||
return NULL;
|
||||
pmd = pmd_offset(pud, address);
|
||||
if (pmd_none(*pmd))
|
||||
return NULL;
|
||||
if (pmd_large(*pmd))
|
||||
@@ -77,9 +81,11 @@ static void set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
|
||||
spin_lock_irqsave(&pgd_lock, flags);
|
||||
for (page = pgd_list; page; page = (struct page *)page->index) {
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pgd = (pgd_t *)page_address(page) + pgd_index(address);
|
||||
pmd = pmd_offset(pgd, address);
|
||||
pud = pud_offset(pgd, address);
|
||||
pmd = pmd_offset(pud, address);
|
||||
set_pte_atomic((pte_t *)pmd, pte);
|
||||
}
|
||||
spin_unlock_irqrestore(&pgd_lock, flags);
|
||||
@@ -92,7 +98,7 @@ static void set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
|
||||
static inline void revert_page(struct page *kpte_page, unsigned long address)
|
||||
{
|
||||
pte_t *linear = (pte_t *)
|
||||
pmd_offset(pgd_offset(&init_mm, address), address);
|
||||
pmd_offset(pud_offset(pgd_offset_k(address), address), address);
|
||||
set_pmd_pte(linear, address,
|
||||
pfn_pte((__pa(address) & LARGE_PAGE_MASK) >> PAGE_SHIFT,
|
||||
PAGE_KERNEL_LARGE));
|
||||
@@ -105,10 +111,7 @@ __change_page_attr(struct page *page, pgprot_t prot)
|
||||
unsigned long address;
|
||||
struct page *kpte_page;
|
||||
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
if (page >= highmem_start_page)
|
||||
BUG();
|
||||
#endif
|
||||
BUG_ON(PageHighMem(page));
|
||||
address = (unsigned long)page_address(page);
|
||||
|
||||
kpte = lookup_address(address);
|
||||
@@ -117,27 +120,35 @@ __change_page_attr(struct page *page, pgprot_t prot)
|
||||
kpte_page = virt_to_page(kpte);
|
||||
if (pgprot_val(prot) != pgprot_val(PAGE_KERNEL)) {
|
||||
if ((pte_val(*kpte) & _PAGE_PSE) == 0) {
|
||||
pte_t old = *kpte;
|
||||
pte_t standard = mk_pte(page, PAGE_KERNEL);
|
||||
set_pte_batched(kpte, mk_pte(page, prot));
|
||||
if (pte_same(old,standard))
|
||||
get_page(kpte_page);
|
||||
} else {
|
||||
struct page *split = split_large_page(address, prot);
|
||||
if (!split)
|
||||
return -ENOMEM;
|
||||
get_page(kpte_page);
|
||||
set_pmd_pte(kpte,address,mk_pte(split, PAGE_KERNEL));
|
||||
kpte_page = split;
|
||||
}
|
||||
get_page(kpte_page);
|
||||
} else if ((pte_val(*kpte) & _PAGE_PSE) == 0) {
|
||||
set_pte_batched(kpte, mk_pte(page, PAGE_KERNEL));
|
||||
__put_page(kpte_page);
|
||||
}
|
||||
} else
|
||||
BUG();
|
||||
|
||||
if (cpu_has_pse && (page_count(kpte_page) == 1)) {
|
||||
list_add(&kpte_page->lru, &df_list);
|
||||
revert_page(kpte_page, address);
|
||||
}
|
||||
/*
|
||||
* If the pte was reserved, it means it was created at boot
|
||||
* time (not via split_large_page) and in turn we must not
|
||||
* replace it with a largepage.
|
||||
*/
|
||||
if (!PageReserved(kpte_page)) {
|
||||
/* memleak and potential failed 2M page regeneration */
|
||||
BUG_ON(!page_count(kpte_page));
|
||||
|
||||
if (cpu_has_pse && (page_count(kpte_page) == 1)) {
|
||||
list_add(&kpte_page->lru, &df_list);
|
||||
revert_page(kpte_page, address);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
+30
-15
@@ -65,6 +65,7 @@ void show_mem(void)
|
||||
static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pte_t *pte;
|
||||
|
||||
@@ -73,7 +74,12 @@ static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
pmd = pmd_offset(pgd, vaddr);
|
||||
pud = pud_offset(pgd, vaddr);
|
||||
if (pud_none(*pud)) {
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
pmd = pmd_offset(pud, vaddr);
|
||||
if (pmd_none(*pmd)) {
|
||||
BUG();
|
||||
return;
|
||||
@@ -97,6 +103,7 @@ static void set_pte_pfn_ma(unsigned long vaddr, unsigned long pfn,
|
||||
pgprot_t flags)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
pte_t *pte;
|
||||
|
||||
@@ -105,7 +112,12 @@ static void set_pte_pfn_ma(unsigned long vaddr, unsigned long pfn,
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
pmd = pmd_offset(pgd, vaddr);
|
||||
pud = pud_offset(pgd, vaddr);
|
||||
if (pud_none(*pud)) {
|
||||
BUG();
|
||||
return;
|
||||
}
|
||||
pmd = pmd_offset(pud, vaddr);
|
||||
if (pmd_none(*pmd)) {
|
||||
BUG();
|
||||
return;
|
||||
@@ -130,6 +142,7 @@ static void set_pte_pfn_ma(unsigned long vaddr, unsigned long pfn,
|
||||
void set_pmd_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
|
||||
if (vaddr & (PMD_SIZE-1)) { /* vaddr is misaligned */
|
||||
@@ -145,7 +158,8 @@ void set_pmd_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
|
||||
printk ("set_pmd_pfn: pgd_none\n");
|
||||
return; /* BUG(); */
|
||||
}
|
||||
pmd = pmd_offset(pgd, vaddr);
|
||||
pud = pud_offset(pgd, vaddr);
|
||||
pmd = pmd_offset(pud, vaddr);
|
||||
set_pmd(pmd, pfn_pmd(pfn, flags));
|
||||
/*
|
||||
* It's enough to flush this one mapping.
|
||||
@@ -178,9 +192,8 @@ void __set_fixmap_ma (enum fixed_addresses idx, unsigned long phys, pgprot_t fla
|
||||
|
||||
pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address)
|
||||
{
|
||||
pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT);
|
||||
pte_t *pte = (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
|
||||
if (pte) {
|
||||
clear_page(pte);
|
||||
make_page_readonly(pte);
|
||||
xen_flush_page_update_queue();
|
||||
}
|
||||
@@ -216,13 +229,11 @@ struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
|
||||
#ifdef CONFIG_HIGHPTE
|
||||
struct page *pte;
|
||||
|
||||
pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT, 0);
|
||||
pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT|__GFP_ZERO, 0);
|
||||
if (pte == NULL)
|
||||
return pte;
|
||||
if (pte >= highmem_start_page) {
|
||||
clear_highpage(pte);
|
||||
if (pte >= highmem_start_page)
|
||||
return pte;
|
||||
}
|
||||
/* not a highmem page -- free page and grab one from the cache */
|
||||
__free_page(pte);
|
||||
#endif
|
||||
@@ -263,7 +274,7 @@ void pmd_ctor(void *pmd, kmem_cache_t *cache, unsigned long flags)
|
||||
* recommendations and having no core impact whatsoever.
|
||||
* -- wli
|
||||
*/
|
||||
spinlock_t pgd_lock = SPIN_LOCK_UNLOCKED;
|
||||
DEFINE_SPINLOCK(pgd_lock);
|
||||
struct page *pgd_list;
|
||||
|
||||
static inline void pgd_list_add(pgd_t *pgd)
|
||||
@@ -357,14 +368,15 @@ void pgd_free(pgd_t *pgd)
|
||||
if (PTRS_PER_PMD > 1)
|
||||
for (i = 0; i < USER_PTRS_PER_PGD; ++i)
|
||||
kmem_cache_free(pmd_cache, (void *)__va(pgd_val(pgd[i])-1));
|
||||
/* in the non-PAE case, clear_page_tables() clears user pgd entries */
|
||||
/* in the non-PAE case, clear_page_range() clears user pgd entries */
|
||||
kmem_cache_free(pgd_cache, pgd);
|
||||
}
|
||||
|
||||
void make_lowmem_page_readonly(void *va)
|
||||
{
|
||||
pgd_t *pgd = pgd_offset_k((unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
|
||||
pud_t *pud = pud_offset(pgd, (unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
|
||||
pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
|
||||
queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
|
||||
}
|
||||
@@ -372,7 +384,8 @@ void make_lowmem_page_readonly(void *va)
|
||||
void make_lowmem_page_writable(void *va)
|
||||
{
|
||||
pgd_t *pgd = pgd_offset_k((unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
|
||||
pud_t *pud = pud_offset(pgd, (unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
|
||||
pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
|
||||
queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
|
||||
}
|
||||
@@ -380,7 +393,8 @@ void make_lowmem_page_writable(void *va)
|
||||
void make_page_readonly(void *va)
|
||||
{
|
||||
pgd_t *pgd = pgd_offset_k((unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
|
||||
pud_t *pud = pud_offset(pgd, (unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
|
||||
pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
|
||||
queue_l1_entry_update(pte, (*(unsigned long *)pte)&~_PAGE_RW);
|
||||
if ( (unsigned long)va >= (unsigned long)high_memory )
|
||||
@@ -397,7 +411,8 @@ void make_page_readonly(void *va)
|
||||
void make_page_writable(void *va)
|
||||
{
|
||||
pgd_t *pgd = pgd_offset_k((unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pgd, (unsigned long)va);
|
||||
pud_t *pud = pud_offset(pgd, (unsigned long)va);
|
||||
pmd_t *pmd = pmd_offset(pud, (unsigned long)va);
|
||||
pte_t *pte = pte_offset_kernel(pmd, (unsigned long)va);
|
||||
queue_l1_entry_update(pte, (*(unsigned long *)pte)|_PAGE_RW);
|
||||
if ( (unsigned long)va >= (unsigned long)high_memory )
|
||||
File renamed without changes.
File renamed without changes.
+3
-1
@@ -23,6 +23,8 @@
|
||||
#include <asm-xen/xen-public/xen.h>
|
||||
#include <asm-xen/xen-public/physdev.h>
|
||||
|
||||
static int pirq_enable_irq(struct pci_dev *dev);
|
||||
|
||||
/*
|
||||
* Never use: 0, 1, 2 (timer, keyboard, and cascade)
|
||||
* Avoid using: 13, 14 and 15 (FP error and IDE).
|
||||
@@ -88,7 +90,7 @@ void pcibios_penalize_isa_irq(int irq)
|
||||
pirq_penalize_isa_irq(irq);
|
||||
}
|
||||
|
||||
int pirq_enable_irq(struct pci_dev *dev)
|
||||
static int pirq_enable_irq(struct pci_dev *dev)
|
||||
{
|
||||
int err;
|
||||
u8 pin;
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -43,6 +43,7 @@ obj-$(CONFIG_DIO) += dio/
|
||||
obj-$(CONFIG_SBUS) += sbus/
|
||||
obj-$(CONFIG_ZORRO) += zorro/
|
||||
obj-$(CONFIG_MAC) += macintosh/
|
||||
obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
|
||||
obj-$(CONFIG_PARIDE) += block/paride/
|
||||
obj-$(CONFIG_TC) += tc/
|
||||
obj-$(CONFIG_USB) += usb/
|
||||
@@ -60,4 +61,6 @@ obj-$(CONFIG_MCA) += mca/
|
||||
obj-$(CONFIG_EISA) += eisa/
|
||||
obj-$(CONFIG_CPU_FREQ) += cpufreq/
|
||||
obj-$(CONFIG_MMC) += mmc/
|
||||
obj-$(CONFIG_INFINIBAND) += infiniband/
|
||||
obj-y += firmware/
|
||||
obj-$(CONFIG_CRYPTO) += crypto/
|
||||
File renamed without changes.
+45
-42
@@ -251,7 +251,7 @@ static void tty_set_termios_ldisc(struct tty_struct *tty, int num)
|
||||
* callers who will do ldisc lookups and cannot sleep.
|
||||
*/
|
||||
|
||||
static spinlock_t tty_ldisc_lock = SPIN_LOCK_UNLOCKED;
|
||||
static DEFINE_SPINLOCK(tty_ldisc_lock);
|
||||
static DECLARE_WAIT_QUEUE_HEAD(tty_ldisc_wait);
|
||||
static struct tty_ldisc tty_ldiscs[NR_LDISCS]; /* line disc dispatch table */
|
||||
|
||||
@@ -329,7 +329,7 @@ void tty_ldisc_put(int disc)
|
||||
|
||||
EXPORT_SYMBOL_GPL(tty_ldisc_put);
|
||||
|
||||
void tty_ldisc_assign(struct tty_struct *tty, struct tty_ldisc *ld)
|
||||
static void tty_ldisc_assign(struct tty_struct *tty, struct tty_ldisc *ld)
|
||||
{
|
||||
tty->ldisc = *ld;
|
||||
tty->ldisc.refcount = 0;
|
||||
@@ -585,7 +585,7 @@ restart:
|
||||
/*
|
||||
* This routine returns a tty driver structure, given a device number
|
||||
*/
|
||||
struct tty_driver *get_tty_driver(dev_t device, int *index)
|
||||
static struct tty_driver *get_tty_driver(dev_t device, int *index)
|
||||
{
|
||||
struct tty_driver *p;
|
||||
|
||||
@@ -692,7 +692,7 @@ static struct file_operations hung_up_tty_fops = {
|
||||
.release = tty_release,
|
||||
};
|
||||
|
||||
static spinlock_t redirect_lock = SPIN_LOCK_UNLOCKED;
|
||||
static DEFINE_SPINLOCK(redirect_lock);
|
||||
static struct file *redirect;
|
||||
|
||||
/**
|
||||
@@ -746,7 +746,7 @@ EXPORT_SYMBOL_GPL(tty_ldisc_flush);
|
||||
* but doesn't hold any locks, so we need to make sure we have the appropriate
|
||||
* locks for what we're doing..
|
||||
*/
|
||||
void do_tty_hangup(void *data)
|
||||
static void do_tty_hangup(void *data)
|
||||
{
|
||||
struct tty_struct *tty = (struct tty_struct *) data;
|
||||
struct file * cons_filp = NULL;
|
||||
@@ -920,9 +920,11 @@ void disassociate_ctty(int on_exit)
|
||||
|
||||
lock_kernel();
|
||||
|
||||
down(&tty_sem);
|
||||
tty = current->signal->tty;
|
||||
if (tty) {
|
||||
tty_pgrp = tty->pgrp;
|
||||
up(&tty_sem);
|
||||
if (on_exit && tty->driver->type != TTY_DRIVER_TYPE_PTY)
|
||||
tty_vhangup(tty);
|
||||
} else {
|
||||
@@ -930,6 +932,7 @@ void disassociate_ctty(int on_exit)
|
||||
kill_pg(current->signal->tty_old_pgrp, SIGHUP, on_exit);
|
||||
kill_pg(current->signal->tty_old_pgrp, SIGCONT, on_exit);
|
||||
}
|
||||
up(&tty_sem);
|
||||
unlock_kernel();
|
||||
return;
|
||||
}
|
||||
@@ -939,15 +942,19 @@ void disassociate_ctty(int on_exit)
|
||||
kill_pg(tty_pgrp, SIGCONT, on_exit);
|
||||
}
|
||||
|
||||
/* Must lock changes to tty_old_pgrp */
|
||||
down(&tty_sem);
|
||||
current->signal->tty_old_pgrp = 0;
|
||||
tty->session = 0;
|
||||
tty->pgrp = -1;
|
||||
|
||||
/* Now clear signal->tty under the lock */
|
||||
read_lock(&tasklist_lock);
|
||||
do_each_task_pid(current->signal->session, PIDTYPE_SID, p) {
|
||||
p->signal->tty = NULL;
|
||||
} while_each_task_pid(current->signal->session, PIDTYPE_SID, p);
|
||||
read_unlock(&tasklist_lock);
|
||||
up(&tty_sem);
|
||||
unlock_kernel();
|
||||
}
|
||||
|
||||
@@ -1013,7 +1020,7 @@ static ssize_t tty_read(struct file * file, char __user * buf, size_t count,
|
||||
tty_ldisc_deref(ld);
|
||||
unlock_kernel();
|
||||
if (i > 0)
|
||||
inode->i_atime = CURRENT_TIME;
|
||||
inode->i_atime = current_fs_time(inode->i_sb);
|
||||
return i;
|
||||
}
|
||||
|
||||
@@ -1042,8 +1049,13 @@ static inline ssize_t do_tty_write(
|
||||
*
|
||||
* But if TTY_NO_WRITE_SPLIT is set, we should use a
|
||||
* big chunk-size..
|
||||
*
|
||||
* The default chunk-size is 2kB, because the NTTY
|
||||
* layer has problems with bigger chunks. It will
|
||||
* claim to be able to handle more characters than
|
||||
* it actually does.
|
||||
*/
|
||||
chunk = 4096;
|
||||
chunk = 2048;
|
||||
if (test_bit(TTY_NO_WRITE_SPLIT, &tty->flags))
|
||||
chunk = 65536;
|
||||
if (count < chunk)
|
||||
@@ -1090,7 +1102,8 @@ static inline ssize_t do_tty_write(
|
||||
cond_resched();
|
||||
}
|
||||
if (written) {
|
||||
file->f_dentry->d_inode->i_mtime = CURRENT_TIME;
|
||||
struct inode *inode = file->f_dentry->d_inode;
|
||||
inode->i_mtime = current_fs_time(inode->i_sb);
|
||||
ret = written;
|
||||
}
|
||||
up(&tty->atomic_write);
|
||||
@@ -1173,12 +1186,6 @@ static int init_dev(struct tty_driver *driver, int idx,
|
||||
struct termios *ltp, **ltp_loc, *o_ltp, **o_ltp_loc;
|
||||
int retval=0;
|
||||
|
||||
/*
|
||||
* Check whether we need to acquire the tty semaphore to avoid
|
||||
* race conditions. For now, play it safe.
|
||||
*/
|
||||
down(&tty_sem);
|
||||
|
||||
/* check whether we're reopening an existing tty */
|
||||
if (driver->flags & TTY_DRIVER_DEVPTS_MEM) {
|
||||
tty = devpts_get_tty(idx);
|
||||
@@ -1367,7 +1374,6 @@ success:
|
||||
|
||||
/* All paths come through here to release the semaphore */
|
||||
end_init:
|
||||
up(&tty_sem);
|
||||
return retval;
|
||||
|
||||
/* Release locally allocated memory ... nothing placed in slots */
|
||||
@@ -1563,9 +1569,14 @@ static void release_dev(struct file * filp)
|
||||
* each iteration we avoid any problems.
|
||||
*/
|
||||
while (1) {
|
||||
/* Guard against races with tty->count changes elsewhere and
|
||||
opens on /dev/tty */
|
||||
|
||||
down(&tty_sem);
|
||||
tty_closing = tty->count <= 1;
|
||||
o_tty_closing = o_tty &&
|
||||
(o_tty->count <= (pty_master ? 1 : 0));
|
||||
up(&tty_sem);
|
||||
do_sleep = 0;
|
||||
|
||||
if (tty_closing) {
|
||||
@@ -1601,6 +1612,8 @@ static void release_dev(struct file * filp)
|
||||
* both sides, and we've completed the last operation that could
|
||||
* block, so it's safe to proceed with closing.
|
||||
*/
|
||||
|
||||
down(&tty_sem);
|
||||
if (pty_master) {
|
||||
if (--o_tty->count < 0) {
|
||||
printk(KERN_WARNING "release_dev: bad pty slave count "
|
||||
@@ -1614,7 +1627,8 @@ static void release_dev(struct file * filp)
|
||||
tty->count, tty_name(tty, buf));
|
||||
tty->count = 0;
|
||||
}
|
||||
|
||||
up(&tty_sem);
|
||||
|
||||
/*
|
||||
* We've decremented tty->count, so we need to remove this file
|
||||
* descriptor off the tty->tty_files list; this serves two
|
||||
@@ -1761,10 +1775,14 @@ retry_open:
|
||||
noctty = filp->f_flags & O_NOCTTY;
|
||||
index = -1;
|
||||
retval = 0;
|
||||
|
||||
down(&tty_sem);
|
||||
|
||||
if (device == MKDEV(TTYAUX_MAJOR,0)) {
|
||||
if (!current->signal->tty)
|
||||
if (!current->signal->tty) {
|
||||
up(&tty_sem);
|
||||
return -ENXIO;
|
||||
}
|
||||
driver = current->signal->tty->driver;
|
||||
index = current->signal->tty->index;
|
||||
filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
|
||||
@@ -1789,14 +1807,18 @@ retry_open:
|
||||
noctty = 1;
|
||||
goto got_driver;
|
||||
}
|
||||
up(&tty_sem);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
driver = get_tty_driver(device, &index);
|
||||
if (!driver)
|
||||
if (!driver) {
|
||||
up(&tty_sem);
|
||||
return -ENODEV;
|
||||
}
|
||||
got_driver:
|
||||
retval = init_dev(driver, index, &tty);
|
||||
up(&tty_sem);
|
||||
if (retval)
|
||||
return retval;
|
||||
|
||||
@@ -1882,7 +1904,10 @@ static int ptmx_open(struct inode * inode, struct file * filp)
|
||||
}
|
||||
up(&allocated_ptys_lock);
|
||||
|
||||
down(&tty_sem);
|
||||
retval = init_dev(ptm_driver, index, &tty);
|
||||
up(&tty_sem);
|
||||
|
||||
if (retval)
|
||||
goto out;
|
||||
|
||||
@@ -2505,28 +2530,6 @@ out:
|
||||
tty_ldisc_deref(disc);
|
||||
}
|
||||
|
||||
/*
|
||||
* Call the ldisc flush directly from a driver. This function may
|
||||
* return an error and need retrying by the user.
|
||||
*/
|
||||
|
||||
int tty_push_data(struct tty_struct *tty, unsigned char *cp, unsigned char *fp, int count)
|
||||
{
|
||||
int ret = 0;
|
||||
struct tty_ldisc *disc;
|
||||
|
||||
disc = tty_ldisc_ref(tty);
|
||||
if(test_bit(TTY_DONT_FLIP, &tty->flags))
|
||||
ret = -EAGAIN;
|
||||
else if(disc == NULL)
|
||||
ret = -EIO;
|
||||
else
|
||||
disc->receive_buf(tty, cp, fp, count);
|
||||
tty_ldisc_deref(disc);
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Routine which returns the baud rate of the tty
|
||||
*
|
||||
@@ -2905,8 +2908,8 @@ void __init console_init(void)
|
||||
So I haven't moved it. dwmw2 */
|
||||
rs_360_init();
|
||||
#endif
|
||||
call = &__con_initcall_start;
|
||||
while (call < &__con_initcall_end) {
|
||||
call = __con_initcall_start;
|
||||
while (call < __con_initcall_end) {
|
||||
(*call)();
|
||||
call++;
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
+9
-1
@@ -91,6 +91,10 @@ static struct timer_list balloon_timer;
|
||||
#define LIST_TO_PAGE(l) ( list_entry(l, struct page, list) )
|
||||
#define UNLIST_PAGE(p) ( list_del(&p->list) )
|
||||
#define pte_offset_kernel pte_offset
|
||||
#define pud_t pgd_t
|
||||
#define pud_offset(d, va) d
|
||||
#define pud_none(d) 0
|
||||
#define pud_bad(d) 0
|
||||
#define subsys_initcall(_fn) __initcall(_fn)
|
||||
#define pfn_to_page(_pfn) (mem_map + (_pfn))
|
||||
#endif
|
||||
@@ -138,12 +142,16 @@ static struct page *balloon_retrieve(void)
|
||||
static inline pte_t *get_ptep(unsigned long addr)
|
||||
{
|
||||
pgd_t *pgd;
|
||||
pud_t *pud;
|
||||
pmd_t *pmd;
|
||||
|
||||
pgd = pgd_offset_k(addr);
|
||||
if ( pgd_none(*pgd) || pgd_bad(*pgd) ) BUG();
|
||||
|
||||
pmd = pmd_offset(pgd, addr);
|
||||
pud = pud_offset(pgd, addr);
|
||||
if ( pud_none(*pud) || pud_bad(*pud) ) BUG();
|
||||
|
||||
pmd = pmd_offset(pud, addr);
|
||||
if ( pmd_none(*pmd) || pmd_bad(*pmd) ) BUG();
|
||||
|
||||
return pte_offset_kernel(pmd, addr);
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+9
@@ -128,6 +128,15 @@ static inline void load_LDT(mm_context_t *pc)
|
||||
put_cpu();
|
||||
}
|
||||
|
||||
static inline unsigned long get_desc_base(unsigned long *desc)
|
||||
{
|
||||
unsigned long base;
|
||||
base = ((desc[0] >> 16) & 0x0000ffff) |
|
||||
((desc[1] << 16) & 0x00ff0000) |
|
||||
(desc[1] & 0xff000000);
|
||||
return base;
|
||||
}
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#endif
|
||||
File renamed without changes.
+3
-1
@@ -122,7 +122,9 @@ extern void __set_fixmap_ma (enum fixed_addresses idx,
|
||||
#define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
|
||||
|
||||
#define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
|
||||
#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
|
||||
#define __FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
|
||||
#define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
|
||||
#define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE)
|
||||
|
||||
#define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
|
||||
#define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
|
||||
File renamed without changes.
+16
-5
@@ -40,16 +40,27 @@ extern void kmap_init(void);
|
||||
* easily, subsequent pte tables have to be allocated in one physical
|
||||
* chunk of RAM.
|
||||
*/
|
||||
#if NR_CPUS <= 32
|
||||
#define PKMAP_BASE (HYPERVISOR_VIRT_START - (1<<23))
|
||||
#else
|
||||
#define PKMAP_BASE (HYPERVISOR_VIRT_START - (1<<23) - 0x200000UL)
|
||||
#endif
|
||||
#ifdef CONFIG_X86_PAE
|
||||
#define LAST_PKMAP 512
|
||||
#else
|
||||
#define LAST_PKMAP 1024
|
||||
#endif
|
||||
/*
|
||||
* Ordering is:
|
||||
*
|
||||
* FIXADDR_TOP
|
||||
* fixed_addresses
|
||||
* FIXADDR_START
|
||||
* temp fixed addresses
|
||||
* FIXADDR_BOOT_START
|
||||
* Persistent kmap area
|
||||
* PKMAP_BASE
|
||||
* VMALLOC_END
|
||||
* Vmalloc area
|
||||
* VMALLOC_START
|
||||
* high_memory
|
||||
*/
|
||||
#define PKMAP_BASE ( (FIXADDR_BOOT_START - PAGE_SIZE*(LAST_PKMAP + 1)) & PMD_MASK )
|
||||
#define LAST_PKMAP_MASK (LAST_PKMAP-1)
|
||||
#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
|
||||
#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT))
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+10
-8
@@ -41,6 +41,9 @@
|
||||
|
||||
#else
|
||||
|
||||
#define alloc_zeroed_user_highpage(vma, vaddr) alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO, vma, vaddr)
|
||||
#define __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE
|
||||
|
||||
/*
|
||||
* On older X86 processors it's not a win to use MMX here it seems.
|
||||
* Maybe the K6-III ?
|
||||
@@ -81,11 +84,12 @@ typedef struct { unsigned long pte_low, pte_high; } pte_t;
|
||||
typedef struct { unsigned long long pmd; } pmd_t;
|
||||
typedef struct { unsigned long long pgd; } pgd_t;
|
||||
typedef struct { unsigned long long pgprot; } pgprot_t;
|
||||
#define pmd_val(x) ((x).pmd)
|
||||
#define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
|
||||
#define __pmd(x) ((pmd_t) { (x) } )
|
||||
#define HPAGE_SHIFT 21
|
||||
#else
|
||||
typedef struct { unsigned long pte_low; } pte_t;
|
||||
typedef struct { unsigned long pmd; } pmd_t;
|
||||
typedef struct { unsigned long pgd; } pgd_t;
|
||||
typedef struct { unsigned long pgprot; } pgprot_t;
|
||||
#define boot_pte_t pte_t /* or would you rather have a typedef */
|
||||
@@ -104,14 +108,13 @@ typedef struct { unsigned long pgprot; } pgprot_t;
|
||||
#endif
|
||||
|
||||
|
||||
static inline unsigned long pmd_val(pmd_t x)
|
||||
static inline unsigned long pgd_val(pgd_t x)
|
||||
{
|
||||
unsigned long ret = x.pmd;
|
||||
unsigned long ret = x.pgd;
|
||||
if (ret) ret = machine_to_phys(ret);
|
||||
return ret;
|
||||
}
|
||||
#define pmd_val_ma(x) ((x).pmd)
|
||||
#define pgd_val(x) ({ BUG(); (unsigned long)0; })
|
||||
#define pgd_val_ma(x) ((x).pgd)
|
||||
#define pgprot_val(x) ((x).pgprot)
|
||||
|
||||
static inline pte_t __pte(unsigned long x)
|
||||
@@ -120,12 +123,11 @@ static inline pte_t __pte(unsigned long x)
|
||||
return ((pte_t) { (x) });
|
||||
}
|
||||
#define __pte_ma(x) ((pte_t) { (x) } )
|
||||
static inline pmd_t __pmd(unsigned long x)
|
||||
static inline pgd_t __pgd(unsigned long x)
|
||||
{
|
||||
if ((x & 1)) x = phys_to_machine(x);
|
||||
return ((pmd_t) { (x) });
|
||||
return ((pgd_t) { (x) });
|
||||
}
|
||||
#define __pgd(x) ({ BUG(); (pgprot_t) { 0 }; })
|
||||
#define __pgprot(x) ((pgprot_t) { (x) } )
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
File renamed without changes.
File renamed without changes.
+10
-13
@@ -11,17 +11,15 @@
|
||||
#define pmd_populate_kernel(mm, pmd, pte) \
|
||||
set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)))
|
||||
|
||||
static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *pte)
|
||||
{
|
||||
set_pmd(pmd, __pmd(_PAGE_TABLE +
|
||||
((unsigned long long)page_to_pfn(pte) <<
|
||||
(unsigned long long) PAGE_SHIFT)));
|
||||
flush_page_update_queue();
|
||||
}
|
||||
#define pmd_populate(mm, pmd, pte) do { \
|
||||
set_pmd(pmd, __pmd(_PAGE_TABLE + \
|
||||
((unsigned long long)page_to_pfn(pte) << \
|
||||
(unsigned long long) PAGE_SHIFT))); \
|
||||
flush_page_update_queue(); \
|
||||
} while (0)
|
||||
/*
|
||||
* Allocate and free page tables.
|
||||
*/
|
||||
|
||||
extern pgd_t *pgd_alloc(struct mm_struct *);
|
||||
extern void pgd_free(pgd_t *pgd);
|
||||
|
||||
@@ -39,16 +37,15 @@ extern void pte_free(struct page *pte);
|
||||
|
||||
#define __pte_free_tlb(tlb,pte) tlb_remove_page((tlb),(pte))
|
||||
|
||||
#ifdef CONFIG_X86_PAE
|
||||
/*
|
||||
* allocating and freeing a pmd is trivial: the 1-entry pmd is
|
||||
* inside the pgd, so has no extra memory associated with it.
|
||||
* (In the PAE case we free the pmds as part of the pgd.)
|
||||
* In the PAE case we free the pmds as part of the pgd.
|
||||
*/
|
||||
|
||||
#define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
|
||||
#define pmd_free(x) do { } while (0)
|
||||
#define __pmd_free_tlb(tlb,x) do { } while (0)
|
||||
#define pgd_populate(mm, pmd, pte) BUG()
|
||||
#define pud_populate(mm, pmd, pte) BUG()
|
||||
#endif
|
||||
|
||||
#define check_pgt_cache() do { } while (0)
|
||||
|
||||
-2
@@ -13,8 +13,6 @@
|
||||
* the i386 is two-level, so we don't really have any
|
||||
* PMD directory physically.
|
||||
*/
|
||||
#define PMD_SHIFT 22
|
||||
#define PTRS_PER_PMD 1
|
||||
|
||||
#define PTRS_PER_PTE 1024
|
||||
|
||||
Loaded 100 of 130 files, more files were not shown because too many files have changed in this diff.
Show more