From fdbe7c1a9cc2040d701f3cd8d1041d2e80ec332f Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Fri, 21 Dec 2012 16:40:26 -0800 Subject: [PATCH] --- yaml --- r: 347938 b: refs/heads/master c: 184e2516614f7055d4c3a2e63fd8a3eb95fff6d6 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/.gitignore | 1 - trunk/Documentation/00-INDEX | 2 - trunk/Documentation/ABI/README | 3 - .../ABI/stable/sysfs-devices-node | 96 +- trunk/Documentation/ABI/testing/ima_policy | 3 +- trunk/Documentation/ABI/testing/sysfs-bus-rbd | 4 + .../ABI/testing/sysfs-devices-node | 7 - trunk/Documentation/DMA-API-HOWTO.txt | 126 + trunk/Documentation/DMA-API.txt | 12 + trunk/Documentation/DMA-attributes.txt | 9 + trunk/Documentation/DocBook/drm.tmpl | 39 +- trunk/Documentation/DocBook/kernel-api.tmpl | 3 + trunk/Documentation/aoe/aoe.txt | 4 +- .../Documentation/backlight/lp855x-driver.txt | 10 +- trunk/Documentation/cgroups/memory.txt | 66 +- .../cgroups/resource_counter.txt | 7 +- .../devicetree/bindings/arm/davinci/nand.txt | 8 + .../bindings/gpu/nvidia,tegra20-host1x.txt | 191 + .../devicetree/bindings/i2c/i2c-cbus-gpio.txt | 27 + .../devicetree/bindings/i2c/i2c-mux-gpio.txt | 81 + .../devicetree/bindings/i2c/i2c-ocores.txt | 2 +- .../devicetree/bindings/i2c/i2c-s3c2410.txt | 20 +- .../bindings/input/gpio-matrix-keypad.txt | 46 + .../devicetree/bindings/input/pwm-beeper.txt | 7 + .../bindings/input/stmpe-keypad.txt | 39 + .../bindings/input/tca8418_keypad.txt | 8 + .../bindings/input/touchscreen/mms114.txt | 34 + .../bindings/input/touchscreen/stmpe.txt | 43 + .../devicetree/bindings/mfd/stmpe.txt | 28 + .../devicetree/bindings/mtd/denali-nand.txt | 23 + .../devicetree/bindings/mtd/flctl-nand.txt | 49 + .../devicetree/bindings/mtd/fsmc-nand.txt | 12 +- .../devicetree/bindings/mtd/m25p80.txt | 29 + .../devicetree/bindings/mtd/mtd-physmap.txt | 3 + .../bindings/powerpc/fsl/raideng.txt | 81 + .../devicetree/bindings/pwm/pwm-tiecap.txt | 23 + .../devicetree/bindings/pwm/pwm-tiehrpwm.txt | 23 + .../devicetree/bindings/pwm/pwm-tipwmss.txt | 31 + .../devicetree/bindings/pwm/pwm.txt | 17 +- .../devicetree/bindings/pwm/spear-pwm.txt | 18 + .../devicetree/bindings/pwm/ti,twl-pwm.txt | 17 + .../devicetree/bindings/pwm/ti,twl-pwmled.txt | 17 + .../devicetree/bindings/pwm/vt8500-pwm.txt | 17 + .../bindings/regulator/tps65217.txt | 4 + .../devicetree/bindings/rtc/imxdi-rtc.txt | 17 + .../devicetree/bindings/rtc/rtc-omap.txt | 17 + .../bindings/spi/nvidia,tegra20-sflash.txt | 2 +- .../bindings/spi/nvidia,tegra20-slink.txt | 2 +- .../devicetree/bindings/spi/spi_atmel.txt | 26 + trunk/Documentation/filesystems/00-INDEX | 2 + trunk/Documentation/filesystems/Locking | 6 - .../filesystems/caching/backend-api.txt | 38 +- .../filesystems/caching/netfs-api.txt | 46 +- .../filesystems/caching/object.txt | 23 +- .../filesystems/caching/operations.txt | 2 +- trunk/Documentation/filesystems/ext4.txt | 9 +- trunk/Documentation/filesystems/f2fs.txt | 421 ++ .../filesystems/nfs/nfs41-server.txt | 20 +- trunk/Documentation/filesystems/porting | 2 +- trunk/Documentation/filesystems/proc.txt | 130 +- trunk/Documentation/filesystems/vfat.txt | 9 + trunk/Documentation/filesystems/vfs.txt | 11 - trunk/Documentation/hwmon/it87 | 10 + trunk/Documentation/i2c/smbus-protocol | 40 +- trunk/Documentation/kernel-parameters.txt | 16 +- trunk/Documentation/kref.txt | 88 + trunk/Documentation/powerpc/ptrace.txt | 16 + trunk/Documentation/prctl/seccomp_filter.txt | 74 +- trunk/Documentation/security/00-INDEX | 2 + trunk/Documentation/security/keys.txt | 17 + trunk/Documentation/sparse.txt | 18 + trunk/Documentation/x86/boot.txt | 3 +- trunk/Documentation/xtensa/atomctl.txt | 44 + trunk/MAINTAINERS | 29 +- trunk/Makefile | 16 +- trunk/arch/Kconfig | 29 +- trunk/arch/alpha/Kconfig | 3 +- trunk/arch/alpha/include/asm/Kbuild | 9 - trunk/arch/alpha/include/asm/a.out.h | 89 +- trunk/arch/alpha/include/asm/compiler.h | 115 +- trunk/arch/alpha/include/asm/console.h | 48 +- trunk/arch/alpha/include/asm/fpu.h | 124 +- trunk/arch/alpha/include/asm/pal.h | 50 +- trunk/arch/alpha/include/asm/param.h | 20 +- trunk/arch/alpha/include/asm/ptrace.h | 69 +- trunk/arch/alpha/include/asm/signal.h | 135 +- trunk/arch/alpha/include/asm/socket.h | 79 +- trunk/arch/alpha/include/asm/termios.h | 68 +- trunk/arch/alpha/include/asm/types.h | 13 +- trunk/arch/alpha/include/asm/unistd.h | 470 +- trunk/arch/alpha/include/uapi/asm/Kbuild | 40 + trunk/arch/alpha/include/uapi/asm/a.out.h | 91 + .../alpha/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../alpha/include/{ => uapi}/asm/byteorder.h | 0 trunk/arch/alpha/include/uapi/asm/compiler.h | 117 + trunk/arch/alpha/include/uapi/asm/console.h | 50 + .../arch/alpha/include/{ => uapi}/asm/errno.h | 0 .../arch/alpha/include/{ => uapi}/asm/fcntl.h | 0 trunk/arch/alpha/include/uapi/asm/fpu.h | 123 + .../alpha/include/{ => uapi}/asm/gentrap.h | 0 .../arch/alpha/include/{ => uapi}/asm/ioctl.h | 0 .../alpha/include/{ => uapi}/asm/ioctls.h | 0 .../alpha/include/{ => uapi}/asm/ipcbuf.h | 0 .../alpha/include/{ => uapi}/asm/kvm_para.h | 0 .../arch/alpha/include/{ => uapi}/asm/mman.h | 0 .../alpha/include/{ => uapi}/asm/msgbuf.h | 0 trunk/arch/alpha/include/uapi/asm/pal.h | 52 + trunk/arch/alpha/include/uapi/asm/param.h | 21 + .../arch/alpha/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/alpha/include/uapi/asm/ptrace.h | 70 + trunk/arch/alpha/include/{ => uapi}/asm/reg.h | 0 .../alpha/include/{ => uapi}/asm/regdef.h | 0 .../alpha/include/{ => uapi}/asm/resource.h | 0 .../alpha/include/{ => uapi}/asm/sembuf.h | 0 .../arch/alpha/include/{ => uapi}/asm/setup.h | 0 .../alpha/include/{ => uapi}/asm/shmbuf.h | 0 .../alpha/include/{ => uapi}/asm/sigcontext.h | 0 .../alpha/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/alpha/include/uapi/asm/signal.h | 129 + trunk/arch/alpha/include/uapi/asm/socket.h | 81 + .../alpha/include/{ => uapi}/asm/sockios.h | 0 .../arch/alpha/include/{ => uapi}/asm/stat.h | 0 .../alpha/include/{ => uapi}/asm/statfs.h | 0 .../arch/alpha/include/{ => uapi}/asm/swab.h | 0 .../alpha/include/{ => uapi}/asm/sysinfo.h | 0 .../alpha/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/alpha/include/uapi/asm/termios.h | 70 + trunk/arch/alpha/include/uapi/asm/types.h | 16 + trunk/arch/alpha/include/uapi/asm/unistd.h | 471 ++ trunk/arch/alpha/kernel/signal.c | 10 +- trunk/arch/arm/Kconfig | 2 - trunk/arch/arm/boot/compressed/head.S | 2 +- trunk/arch/arm/boot/dts/Makefile | 10 +- trunk/arch/arm/boot/dts/at91sam9263.dtsi | 4 +- trunk/arch/arm/boot/dts/at91sam9g45.dtsi | 4 +- trunk/arch/arm/boot/dts/at91sam9x5.dtsi | 2 +- trunk/arch/arm/boot/dts/imx27-3ds.dts | 8 +- .../arm/boot/dts/imx27-phytec-phycore.dts | 13 +- trunk/arch/arm/boot/dts/imx27.dtsi | 11 +- trunk/arch/arm/boot/dts/imx28-cfa10049.dts | 24 + trunk/arch/arm/boot/dts/omap2420-h4.dts | 2 +- trunk/arch/arm/boot/dts/spear13xx.dtsi | 14 +- trunk/arch/arm/boot/dts/spear300.dtsi | 8 +- trunk/arch/arm/boot/dts/spear310.dtsi | 8 +- trunk/arch/arm/boot/dts/spear320.dtsi | 8 +- trunk/arch/arm/boot/dts/spear600.dtsi | 8 +- ...ubieboard.dts => sun4i-a10-cubieboard.dts} | 4 +- .../boot/dts/{sun4i.dtsi => sun4i-a10.dtsi} | 0 ...-olinuxino.dts => sun5i-a13-olinuxino.dts} | 4 +- .../boot/dts/{sun5i.dtsi => sun5i-a13.dtsi} | 0 trunk/arch/arm/configs/nhk8815_defconfig | 2 +- trunk/arch/arm/include/asm/dma-mapping.h | 1 + trunk/arch/arm/include/asm/unistd.h | 1 - trunk/arch/arm/include/uapi/asm/signal.h | 7 - trunk/arch/arm/include/uapi/asm/unistd.h | 1 + trunk/arch/arm/kernel/calls.S | 1 + trunk/arch/arm/kernel/setup.c | 2 +- trunk/arch/arm/kernel/swp_emulate.c | 2 + trunk/arch/arm/kernel/vmlinux.lds.S | 4 +- trunk/arch/arm/mach-davinci/board-da850-evm.c | 1 + trunk/arch/arm/mach-davinci/devices-da8xx.c | 13 +- .../arm/mach-ep93xx/include/mach/uncompress.h | 10 +- trunk/arch/arm/mach-exynos/clock-exynos4.c | 4 +- trunk/arch/arm/mach-exynos/common.c | 3 +- trunk/arch/arm/mach-exynos/common.h | 2 +- trunk/arch/arm/mach-exynos/dev-audio.c | 12 - trunk/arch/arm/mach-exynos/mach-exynos5-dt.c | 2 + trunk/arch/arm/mach-exynos/mach-origen.c | 4 +- trunk/arch/arm/mach-exynos/mach-smdk4x12.c | 4 +- trunk/arch/arm/mach-exynos/mach-smdkv310.c | 4 +- trunk/arch/arm/mach-exynos/platsmp.c | 2 +- trunk/arch/arm/mach-imx/clk-imx51-imx53.c | 16 + .../devices/platform-mx2-emma.c | 4 +- trunk/arch/arm/mach-mxs/mach-mxs.c | 2 +- trunk/arch/arm/mach-nomadik/board-nhk8815.c | 71 +- .../arch/arm/mach-nomadik/include/mach/fsmc.h | 29 - trunk/arch/arm/mach-omap1/board-nokia770.c | 14 +- trunk/arch/arm/mach-omap2/Kconfig | 3 +- trunk/arch/arm/mach-omap2/board-3430sdp.c | 1 + trunk/arch/arm/mach-omap2/board-am3517evm.c | 1 + trunk/arch/arm/mach-omap2/board-cm-t35.c | 1 + trunk/arch/arm/mach-omap2/board-devkit8000.c | 1 + trunk/arch/arm/mach-omap2/board-h4.c | 83 +- trunk/arch/arm/mach-omap2/board-n8x0.c | 42 + trunk/arch/arm/mach-omap2/board-omap3evm.c | 1 + .../arch/arm/mach-omap2/board-omap3stalker.c | 1 + .../arm/mach-omap2/board-rx51-peripherals.c | 6 + trunk/arch/arm/mach-omap2/cclock44xx_data.c | 78 +- trunk/arch/arm/mach-omap2/clock.h | 10 + trunk/arch/arm/mach-omap2/clockdomain.c | 3 +- trunk/arch/arm/mach-omap2/common.c | 3 - trunk/arch/arm/mach-omap2/cpuidle34xx.c | 14 +- trunk/arch/arm/mach-omap2/cpuidle44xx.c | 28 +- trunk/arch/arm/mach-omap2/devices.c | 2 +- trunk/arch/arm/mach-omap2/dpll3xxx.c | 46 +- trunk/arch/arm/mach-omap2/dpll44xx.c | 64 +- trunk/arch/arm/mach-omap2/i2c.c | 20 + trunk/arch/arm/mach-omap2/mux.c | 10 +- trunk/arch/arm/mach-omap2/mux.h | 20 +- trunk/arch/arm/mach-omap2/mux34xx.c | 2 +- trunk/arch/arm/mach-omap2/omap-iommu.c | 167 +- .../arm/mach-omap2/omap_hwmod_2430_data.c | 3 +- .../arm/mach-omap2/omap_hwmod_33xx_data.c | 3 +- .../arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 +- .../arm/mach-omap2/omap_hwmod_44xx_data.c | 7 +- trunk/arch/arm/mach-omap2/serial.c | 3 +- trunk/arch/arm/mach-omap2/timer.c | 8 +- trunk/arch/arm/mach-omap2/usb-host.c | 4 + .../arm/mach-realview/include/mach/board-eb.h | 2 +- trunk/arch/arm/mach-s3c64xx/clock.c | 126 +- trunk/arch/arm/mach-s3c64xx/dev-audio.c | 11 - trunk/arch/arm/mach-s5p64x0/clock-s5p6440.c | 49 +- trunk/arch/arm/mach-s5p64x0/clock-s5p6450.c | 61 +- trunk/arch/arm/mach-s5p64x0/dev-audio.c | 12 - trunk/arch/arm/mach-s5pc100/clock.c | 48 +- trunk/arch/arm/mach-s5pc100/dev-audio.c | 16 - trunk/arch/arm/mach-s5pv210/dev-audio.c | 16 - trunk/arch/arm/mach-tegra/common.c | 2 +- trunk/arch/arm/mach-tegra/tegra30_clocks.c | 4 +- trunk/arch/arm/mach-u300/core.c | 48 +- .../arch/arm/mach-ux500/board-mop500-stuib.c | 71 +- trunk/arch/arm/mach-ux500/devices-db8500.h | 1 + trunk/arch/arm/mm/cache-v7.S | 6 +- trunk/arch/arm/mm/dma-mapping.c | 41 +- trunk/arch/arm/plat-omap/Makefile | 1 - trunk/arch/arm/plat-omap/debug-devices.c | 92 - .../plat-omap/include/plat/debug-devices.h | 2 - .../arm/plat-samsung/include/plat/gpio-core.h | 5 + trunk/arch/arm64/Kconfig | 2 - trunk/arch/arm64/include/asm/compat.h | 5 +- trunk/arch/arm64/include/asm/dma-mapping.h | 1 + trunk/arch/arm64/include/asm/unistd.h | 2 +- trunk/arch/arm64/kernel/sys_compat.c | 15 - trunk/arch/avr32/Kconfig | 2 - trunk/arch/avr32/include/asm/ptrace.h | 1 + trunk/arch/avr32/include/asm/unistd.h | 1 - trunk/arch/avr32/include/uapi/asm/signal.h | 6 - trunk/arch/blackfin/Kconfig | 2 - trunk/arch/blackfin/include/asm/Kbuild | 6 +- trunk/arch/blackfin/include/asm/bfin_sport.h | 128 +- trunk/arch/blackfin/include/asm/bfin_twi.h | 2 +- trunk/arch/blackfin/include/asm/fixed_code.h | 30 +- trunk/arch/blackfin/include/asm/pgtable.h | 2 - trunk/arch/blackfin/include/asm/ptrace.h | 162 +- trunk/arch/blackfin/include/asm/uaccess.h | 41 +- trunk/arch/blackfin/include/asm/unistd.h | 431 +- trunk/arch/blackfin/include/mach-common/irq.h | 5 +- trunk/arch/blackfin/include/uapi/asm/Kbuild | 16 + .../blackfin/include/uapi/asm/bfin_sport.h | 136 + .../include/{ => uapi}/asm/byteorder.h | 0 .../include/{ => uapi}/asm/cachectl.h | 0 .../blackfin/include/{ => uapi}/asm/fcntl.h | 0 .../blackfin/include/uapi/asm/fixed_code.h | 38 + .../blackfin/include/{ => uapi}/asm/ioctls.h | 0 .../blackfin/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/blackfin/include/uapi/asm/ptrace.h | 170 + .../include/{ => uapi}/asm/sigcontext.h | 0 .../blackfin/include/{ => uapi}/asm/siginfo.h | 0 .../blackfin/include/{ => uapi}/asm/signal.h | 0 .../blackfin/include/{ => uapi}/asm/stat.h | 0 .../blackfin/include/{ => uapi}/asm/swab.h | 0 trunk/arch/blackfin/include/uapi/asm/unistd.h | 437 ++ trunk/arch/blackfin/kernel/kgdb.c | 13 +- .../mach-bf518/include/mach/anomaly.h | 1 + .../mach-bf527/include/mach/anomaly.h | 1 + .../mach-bf533/include/mach/anomaly.h | 1 + .../mach-bf537/include/mach/anomaly.h | 1 + .../mach-bf538/include/mach/anomaly.h | 1 + .../mach-bf548/include/mach/anomaly.h | 1 + .../mach-bf561/include/mach/anomaly.h | 1 + .../blackfin/mach-bf609/include/mach/irq.h | 3 - trunk/arch/blackfin/mach-bf609/pm.c | 3 +- trunk/arch/blackfin/mach-common/dpmc.c | 19 +- .../arch/blackfin/mach-common/ints-priority.c | 272 +- trunk/arch/c6x/Kconfig | 2 - trunk/arch/c6x/include/asm/Kbuild | 1 + trunk/arch/c6x/include/asm/dma-mapping.h | 1 + trunk/arch/c6x/include/asm/mmu.h | 22 - trunk/arch/c6x/include/uapi/asm/unistd.h | 1 - trunk/arch/cris/Kconfig | 2 - trunk/arch/cris/include/arch-v10/arch/Kbuild | 5 +- trunk/arch/cris/include/arch-v32/arch/Kbuild | 3 +- .../cris/include/arch-v32/arch/cryptocop.h | 116 +- .../cris/include/arch-v32/arch/spinlock.h | 2 +- trunk/arch/cris/include/asm/Kbuild | 5 - trunk/arch/cris/include/asm/io.h | 39 +- trunk/arch/cris/include/asm/ptrace.h | 6 +- trunk/arch/cris/include/asm/signal.h | 121 +- trunk/arch/cris/include/asm/swab.h | 3 +- trunk/arch/cris/include/asm/termios.h | 43 +- trunk/arch/cris/include/asm/types.h | 5 +- trunk/arch/cris/include/asm/unistd.h | 343 +- .../cris/include/uapi/arch-v10/arch/Kbuild | 4 + .../{ => uapi}/arch-v10/arch/sv_addr.agh | 0 .../{ => uapi}/arch-v10/arch/sv_addr_ag.h | 0 .../include/{ => uapi}/arch-v10/arch/svinto.h | 0 .../include/{ => uapi}/arch-v10/arch/user.h | 0 .../cris/include/uapi/arch-v32/arch/Kbuild | 2 + .../include/uapi/arch-v32/arch/cryptocop.h | 122 + .../include/{ => uapi}/arch-v32/arch/user.h | 0 trunk/arch/cris/include/uapi/asm/Kbuild | 34 + .../arch/cris/include/{ => uapi}/asm/auxvec.h | 0 .../cris/include/{ => uapi}/asm/bitsperlong.h | 0 .../cris/include/{ => uapi}/asm/byteorder.h | 0 .../arch/cris/include/{ => uapi}/asm/errno.h | 0 .../cris/include/{ => uapi}/asm/ethernet.h | 0 .../cris/include/{ => uapi}/asm/etraxgpio.h | 0 .../arch/cris/include/{ => uapi}/asm/fcntl.h | 0 .../arch/cris/include/{ => uapi}/asm/ioctl.h | 0 .../arch/cris/include/{ => uapi}/asm/ioctls.h | 0 .../arch/cris/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/cris/include/{ => uapi}/asm/mman.h | 0 .../arch/cris/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/cris/include/{ => uapi}/asm/param.h | 0 trunk/arch/cris/include/{ => uapi}/asm/poll.h | 0 .../cris/include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/cris/include/uapi/asm/ptrace.h | 1 + .../cris/include/{ => uapi}/asm/resource.h | 0 .../arch/cris/include/{ => uapi}/asm/rs485.h | 0 .../arch/cris/include/{ => uapi}/asm/sembuf.h | 0 .../arch/cris/include/{ => uapi}/asm/setup.h | 0 .../arch/cris/include/{ => uapi}/asm/shmbuf.h | 0 .../cris/include/{ => uapi}/asm/sigcontext.h | 0 .../cris/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/cris/include/uapi/asm/signal.h | 116 + .../arch/cris/include/{ => uapi}/asm/socket.h | 0 .../cris/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/cris/include/{ => uapi}/asm/stat.h | 0 .../arch/cris/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/cris/include/uapi/asm/swab.h | 3 + .../cris/include/{ => uapi}/asm/sync_serial.h | 0 .../cris/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/cris/include/uapi/asm/termios.h | 45 + trunk/arch/cris/include/uapi/asm/types.h | 1 + trunk/arch/cris/include/uapi/asm/unistd.h | 344 ++ trunk/arch/cris/kernel/asm-offsets.c | 6 +- trunk/arch/cris/kernel/module.c | 2 - trunk/arch/frv/Kconfig | 2 - trunk/arch/frv/include/asm/unistd.h | 1 - trunk/arch/frv/kernel/setup.c | 12 +- trunk/arch/frv/mm/init.c | 2 +- trunk/arch/h8300/Kconfig | 3 +- trunk/arch/h8300/include/asm/Kbuild | 2 +- trunk/arch/h8300/include/asm/mmu.h | 10 - trunk/arch/h8300/include/asm/param.h | 15 +- trunk/arch/h8300/include/asm/ptrace.h | 41 +- trunk/arch/h8300/include/asm/signal.h | 121 +- trunk/arch/h8300/include/asm/termios.h | 44 +- trunk/arch/h8300/include/asm/types.h | 5 +- trunk/arch/h8300/include/asm/unistd.h | 329 +- trunk/arch/h8300/include/uapi/asm/Kbuild | 31 + .../h8300/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../h8300/include/{ => uapi}/asm/byteorder.h | 0 .../arch/h8300/include/{ => uapi}/asm/errno.h | 0 .../arch/h8300/include/{ => uapi}/asm/fcntl.h | 0 .../arch/h8300/include/{ => uapi}/asm/ioctl.h | 0 .../h8300/include/{ => uapi}/asm/ioctls.h | 0 .../h8300/include/{ => uapi}/asm/ipcbuf.h | 0 .../include/uapi}/asm/kvm_para.h | 0 .../arch/h8300/include/{ => uapi}/asm/mman.h | 0 .../h8300/include/{ => uapi}/asm/msgbuf.h | 0 trunk/arch/h8300/include/uapi/asm/param.h | 16 + .../arch/h8300/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/h8300/include/uapi/asm/ptrace.h | 44 + .../h8300/include/{ => uapi}/asm/resource.h | 0 .../h8300/include/{ => uapi}/asm/sembuf.h | 0 .../arch/h8300/include/{ => uapi}/asm/setup.h | 0 .../h8300/include/{ => uapi}/asm/shmbuf.h | 0 .../h8300/include/{ => uapi}/asm/sigcontext.h | 0 .../h8300/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/h8300/include/uapi/asm/signal.h | 115 + .../h8300/include/{ => uapi}/asm/socket.h | 0 .../h8300/include/{ => uapi}/asm/sockios.h | 0 .../arch/h8300/include/{ => uapi}/asm/stat.h | 0 .../h8300/include/{ => uapi}/asm/statfs.h | 0 .../arch/h8300/include/{ => uapi}/asm/swab.h | 0 .../h8300/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/h8300/include/uapi/asm/termios.h | 44 + trunk/arch/h8300/include/uapi/asm/types.h | 1 + trunk/arch/h8300/include/uapi/asm/unistd.h | 330 ++ trunk/arch/hexagon/Kconfig | 2 - trunk/arch/hexagon/include/uapi/asm/unistd.h | 1 - trunk/arch/ia64/Kconfig | 2 - trunk/arch/ia64/include/asm/dma-mapping.h | 1 + trunk/arch/ia64/include/asm/ptrace.h | 5 + trunk/arch/ia64/include/asm/unistd.h | 1 - trunk/arch/ia64/include/uapi/asm/signal.h | 6 - trunk/arch/m32r/Kconfig | 2 - trunk/arch/m32r/include/asm/Kbuild | 1 - trunk/arch/m32r/include/asm/ptrace.h | 111 +- trunk/arch/m32r/include/asm/setup.h | 9 +- trunk/arch/m32r/include/asm/signal.h | 123 +- trunk/arch/m32r/include/asm/termios.h | 42 +- trunk/arch/m32r/include/asm/types.h | 5 +- trunk/arch/m32r/include/asm/unistd.h | 334 +- trunk/arch/m32r/include/uapi/asm/Kbuild | 30 + .../arch/m32r/include/{ => uapi}/asm/auxvec.h | 0 .../m32r/include/{ => uapi}/asm/bitsperlong.h | 0 .../m32r/include/{ => uapi}/asm/byteorder.h | 0 .../arch/m32r/include/{ => uapi}/asm/errno.h | 0 .../arch/m32r/include/{ => uapi}/asm/fcntl.h | 0 .../arch/m32r/include/{ => uapi}/asm/ioctl.h | 0 .../arch/m32r/include/{ => uapi}/asm/ioctls.h | 0 .../arch/m32r/include/{ => uapi}/asm/ipcbuf.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/mman.h | 0 .../arch/m32r/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/m32r/include/{ => uapi}/asm/param.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/poll.h | 0 .../m32r/include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/m32r/include/uapi/asm/ptrace.h | 117 + .../m32r/include/{ => uapi}/asm/resource.h | 0 .../arch/m32r/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/m32r/include/uapi/asm/setup.h | 11 + .../arch/m32r/include/{ => uapi}/asm/shmbuf.h | 0 .../m32r/include/{ => uapi}/asm/sigcontext.h | 0 .../m32r/include/{ => uapi}/asm/siginfo.h | 0 trunk/arch/m32r/include/uapi/asm/signal.h | 117 + .../arch/m32r/include/{ => uapi}/asm/socket.h | 0 .../m32r/include/{ => uapi}/asm/sockios.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/stat.h | 0 .../arch/m32r/include/{ => uapi}/asm/statfs.h | 0 trunk/arch/m32r/include/{ => uapi}/asm/swab.h | 0 .../m32r/include/{ => uapi}/asm/termbits.h | 0 trunk/arch/m32r/include/uapi/asm/termios.h | 43 + trunk/arch/m32r/include/uapi/asm/types.h | 1 + trunk/arch/m32r/include/uapi/asm/unistd.h | 335 ++ trunk/arch/m68k/Kconfig | 2 - trunk/arch/m68k/Kconfig.cpu | 3 +- trunk/arch/m68k/Makefile | 6 +- trunk/arch/m68k/include/asm/m5249sim.h | 269 -- trunk/arch/m68k/include/asm/m525xsim.h | 116 +- trunk/arch/m68k/include/asm/mcfclk.h | 9 +- trunk/arch/m68k/include/asm/mcfsim.h | 5 +- trunk/arch/m68k/include/asm/page_no.h | 2 +- trunk/arch/m68k/include/asm/ptrace.h | 1 + trunk/arch/m68k/include/asm/unistd.h | 1 - trunk/arch/m68k/include/uapi/asm/signal.h | 6 - trunk/arch/m68k/lib/memcpy.c | 3 +- trunk/arch/m68k/platform/68000/Makefile | 18 + .../bootlogo.h => 68000/bootlogo-vz.h} | 0 .../m68k/platform/{68328 => 68000}/bootlogo.h | 0 .../m68k/platform/{68328 => 68000}/entry.S | 0 trunk/arch/m68k/platform/68000/head.S | 240 + .../m68k/platform/{68328 => 68000}/ints.c | 2 +- .../{68328/config.c => 68000/m68328.c} | 2 +- .../{68EZ328/config.c => 68000/m68EZ328.c} | 2 +- .../{68VZ328/config.c => 68000/m68VZ328.c} | 4 +- .../m68k/platform/{68328 => 68000}/romvec.S | 2 +- .../m68k/platform/{68328 => 68000}/timers.c | 2 +- trunk/arch/m68k/platform/68328/Makefile | 21 - trunk/arch/m68k/platform/68328/head-de2.S | 128 - trunk/arch/m68k/platform/68328/head-pilot.S | 207 - trunk/arch/m68k/platform/68328/head-ram.S | 141 - trunk/arch/m68k/platform/68328/head-rom.S | 105 - trunk/arch/m68k/platform/68EZ328/Makefile | 5 - trunk/arch/m68k/platform/68VZ328/Makefile | 5 - trunk/arch/m68k/platform/coldfire/clk.c | 100 +- trunk/arch/m68k/platform/coldfire/intc-5249.c | 8 +- trunk/arch/m68k/platform/coldfire/m5206.c | 20 + trunk/arch/m68k/platform/coldfire/m523x.c | 28 + trunk/arch/m68k/platform/coldfire/m5249.c | 28 +- trunk/arch/m68k/platform/coldfire/m525x.c | 20 + trunk/arch/m68k/platform/coldfire/m5272.c | 26 + trunk/arch/m68k/platform/coldfire/m527x.c | 30 + trunk/arch/m68k/platform/coldfire/m528x.c | 28 + trunk/arch/m68k/platform/coldfire/m5307.c | 20 + trunk/arch/m68k/platform/coldfire/m5407.c | 20 + trunk/arch/m68k/platform/coldfire/m54xx.c | 26 + trunk/arch/microblaze/Kconfig | 2 - .../arch/microblaze/include/asm/dma-mapping.h | 2 + trunk/arch/microblaze/include/asm/ptrace.h | 1 + trunk/arch/microblaze/include/asm/unistd.h | 1 - trunk/arch/mips/Kconfig | 2 - trunk/arch/mips/include/asm/dma-mapping.h | 2 + trunk/arch/mips/include/asm/ptrace.h | 1 + trunk/arch/mips/include/asm/unistd.h | 1 - trunk/arch/mips/include/uapi/asm/signal.h | 6 - trunk/arch/mn10300/Kconfig | 2 - trunk/arch/mn10300/include/asm/unistd.h | 1 - trunk/arch/mn10300/include/uapi/asm/signal.h | 6 - trunk/arch/openrisc/Kconfig | 2 - trunk/arch/openrisc/include/asm/Kbuild | 1 + trunk/arch/openrisc/include/asm/io.h | 1 + .../arch/openrisc/include/uapi/asm/kvm_para.h | 1 - trunk/arch/openrisc/include/uapi/asm/unistd.h | 1 - trunk/arch/openrisc/kernel/asm-offsets.c | 6 +- trunk/arch/parisc/Kconfig | 2 - trunk/arch/parisc/include/asm/unistd.h | 1 - trunk/arch/parisc/include/uapi/asm/signal.h | 6 - trunk/arch/parisc/kernel/module.c | 2 - trunk/arch/powerpc/Kconfig | 2 - trunk/arch/powerpc/Makefile | 2 +- trunk/arch/powerpc/boot/dts/a3m071.dts | 144 + .../powerpc/boot/dts/fsl/p5020si-post.dtsi | 1 + .../powerpc/boot/dts/fsl/p5020si-pre.dtsi | 6 + .../powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi | 85 + trunk/arch/powerpc/configs/pseries_defconfig | 2 +- trunk/arch/powerpc/include/asm/bitops.h | 75 +- trunk/arch/powerpc/include/asm/cputable.h | 12 +- trunk/arch/powerpc/include/asm/dbell.h | 2 +- trunk/arch/powerpc/include/asm/dma-mapping.h | 1 + .../arch/powerpc/include/asm/exception-64s.h | 97 +- trunk/arch/powerpc/include/asm/firmware.h | 4 +- trunk/arch/powerpc/include/asm/fsl_gtm.h | 2 +- trunk/arch/powerpc/include/asm/fsl_guts.h | 4 +- trunk/arch/powerpc/include/asm/hvcall.h | 23 +- trunk/arch/powerpc/include/asm/immap_qe.h | 2 +- trunk/arch/powerpc/include/asm/machdep.h | 39 +- trunk/arch/powerpc/include/asm/mmu.h | 1 + .../powerpc/include/asm/pSeries_reconfig.h | 47 - trunk/arch/powerpc/include/asm/ppc-opcode.h | 6 +- trunk/arch/powerpc/include/asm/prom.h | 16 + trunk/arch/powerpc/include/asm/qe.h | 2 +- trunk/arch/powerpc/include/asm/qe_ic.h | 2 +- trunk/arch/powerpc/include/asm/reg.h | 3 + trunk/arch/powerpc/include/asm/rtas.h | 5 + trunk/arch/powerpc/include/asm/setup.h | 29 + trunk/arch/powerpc/include/asm/systbl.h | 3 +- trunk/arch/powerpc/include/asm/ucc.h | 2 +- trunk/arch/powerpc/include/asm/ucc_fast.h | 2 +- trunk/arch/powerpc/include/asm/ucc_slow.h | 2 +- trunk/arch/powerpc/include/asm/udbg.h | 1 - trunk/arch/powerpc/include/asm/unistd.h | 4 +- trunk/arch/powerpc/include/uapi/asm/setup.h | 31 - trunk/arch/powerpc/include/uapi/asm/signal.h | 6 - trunk/arch/powerpc/include/uapi/asm/unistd.h | 1 + trunk/arch/powerpc/kernel/Makefile | 2 +- .../{cpu_setup_power7.S => cpu_setup_power.S} | 32 +- trunk/arch/powerpc/kernel/cputable.c | 38 + trunk/arch/powerpc/kernel/entry_64.S | 2 + trunk/arch/powerpc/kernel/exceptions-64s.S | 308 +- trunk/arch/powerpc/kernel/head_64.S | 6 +- trunk/arch/powerpc/kernel/idle.c | 3 - trunk/arch/powerpc/kernel/iommu.c | 16 +- trunk/arch/powerpc/kernel/machine_kexec.c | 14 +- trunk/arch/powerpc/kernel/machine_kexec_64.c | 8 +- trunk/arch/powerpc/kernel/pci_32.c | 2 +- trunk/arch/powerpc/kernel/prom.c | 7 +- trunk/arch/powerpc/kernel/prom_init.c | 11 +- trunk/arch/powerpc/kernel/ptrace.c | 90 +- trunk/arch/powerpc/kernel/rtas.c | 1 - trunk/arch/powerpc/kernel/rtas_flash.c | 4 +- trunk/arch/powerpc/kernel/setup_64.c | 5 + trunk/arch/powerpc/kernel/sys_ppc32.c | 17 +- trunk/arch/powerpc/kernel/udbg.c | 23 - trunk/arch/powerpc/mm/numa.c | 12 - trunk/arch/powerpc/mm/tlb_nohash_low.S | 15 +- trunk/arch/powerpc/perf/power7-pmu.c | 17 +- trunk/arch/powerpc/platforms/512x/Kconfig | 1 - .../arch/powerpc/platforms/512x/mpc5121_ads.c | 3 + trunk/arch/powerpc/platforms/512x/mpc512x.h | 11 +- .../powerpc/platforms/512x/mpc512x_shared.c | 25 +- trunk/arch/powerpc/platforms/52xx/lite5200.c | 2 +- .../powerpc/platforms/52xx/mpc5200_simple.c | 1 + .../powerpc/platforms/52xx/mpc52xx_lpbfifo.c | 16 +- .../powerpc/platforms/82xx/pq2ads-pci-pic.c | 8 +- .../arch/powerpc/platforms/83xx/mpc832x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc836x_mds.c | 2 +- .../arch/powerpc/platforms/83xx/mpc836x_rdk.c | 2 +- .../arch/powerpc/platforms/83xx/mpc837x_rdb.c | 2 +- .../arch/powerpc/platforms/85xx/mpc85xx_mds.c | 2 +- trunk/arch/powerpc/platforms/85xx/p1022_ds.c | 8 +- trunk/arch/powerpc/platforms/85xx/smp.c | 49 +- .../powerpc/platforms/86xx/mpc8610_hpcd.c | 2 + .../arch/powerpc/platforms/cell/spufs/sched.c | 2 +- .../powerpc/platforms/cell/spufs/syscalls.c | 2 +- .../powerpc/platforms/powermac/cpufreq_32.c | 5 +- .../arch/powerpc/platforms/powernv/pci-ioda.c | 25 +- trunk/arch/powerpc/platforms/ps3/os-area.c | 6 +- trunk/arch/powerpc/platforms/pseries/dlpar.c | 34 +- .../arch/powerpc/platforms/pseries/firmware.c | 1 + .../powerpc/platforms/pseries/hotplug-cpu.c | 8 +- .../platforms/pseries/hotplug-memory.c | 60 +- trunk/arch/powerpc/platforms/pseries/iommu.c | 10 +- .../arch/powerpc/platforms/pseries/mobility.c | 4 +- .../platforms/pseries/plpar_wrappers.h | 31 + .../arch/powerpc/platforms/pseries/reconfig.c | 119 +- trunk/arch/powerpc/platforms/pseries/setup.c | 77 +- trunk/arch/powerpc/platforms/pseries/smp.c | 1 - trunk/arch/powerpc/sysdev/fsl_gtm.c | 2 +- trunk/arch/powerpc/sysdev/fsl_pci.c | 37 +- trunk/arch/powerpc/sysdev/pmi.c | 13 +- trunk/arch/powerpc/sysdev/qe_lib/qe.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_ic.h | 2 +- trunk/arch/powerpc/sysdev/qe_lib/qe_io.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc_fast.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/ucc_slow.c | 2 +- trunk/arch/powerpc/sysdev/qe_lib/usb.c | 2 +- trunk/arch/powerpc/xmon/Makefile | 2 +- trunk/arch/powerpc/xmon/nonstdio.c | 53 +- trunk/arch/powerpc/xmon/nonstdio.h | 6 - trunk/arch/powerpc/xmon/start.c | 34 - trunk/arch/powerpc/xmon/xmon.c | 26 +- trunk/arch/s390/Kconfig | 2 - trunk/arch/s390/include/asm/ccwdev.h | 4 +- trunk/arch/s390/include/asm/compat.h | 3 + trunk/arch/s390/include/asm/pci.h | 39 + trunk/arch/s390/include/asm/pci_debug.h | 36 + trunk/arch/s390/include/asm/unistd.h | 1 - trunk/arch/s390/include/uapi/asm/signal.h | 6 - trunk/arch/s390/pci/Makefile | 2 +- trunk/arch/s390/pci/pci.c | 73 +- trunk/arch/s390/pci/pci_clp.c | 1 + trunk/arch/s390/pci/pci_debug.c | 193 + trunk/arch/s390/pci/pci_dma.c | 8 +- trunk/arch/s390/pci/pci_event.c | 2 + trunk/arch/score/Kconfig | 2 - trunk/arch/score/include/asm/Kbuild | 1 - trunk/arch/score/include/asm/kvm_para.h | 1 - trunk/arch/score/include/asm/ptrace.h | 75 +- trunk/arch/score/include/asm/setup.h | 7 +- trunk/arch/score/include/uapi/asm/Kbuild | 31 + .../score/include/{ => uapi}/asm/auxvec.h | 0 .../include/{ => uapi}/asm/bitsperlong.h | 0 .../score/include/{ => uapi}/asm/byteorder.h | 0 .../arch/score/include/{ => uapi}/asm/errno.h | 0 .../arch/score/include/{ => uapi}/asm/fcntl.h | 0 .../arch/score/include/{ => uapi}/asm/ioctl.h | 0 .../score/include/{ => uapi}/asm/ioctls.h | 0 .../score/include/{ => uapi}/asm/ipcbuf.h | 0 .../include/uapi}/asm/kvm_para.h | 0 .../arch/score/include/{ => uapi}/asm/mman.h | 0 .../score/include/{ => uapi}/asm/msgbuf.h | 0 .../arch/score/include/{ => uapi}/asm/param.h | 0 .../arch/score/include/{ => uapi}/asm/poll.h | 0 .../include/{ => uapi}/asm/posix_types.h | 0 trunk/arch/score/include/uapi/asm/ptrace.h | 76 + .../score/include/{ => uapi}/asm/resource.h | 0 .../score/include/{ => uapi}/asm/sembuf.h | 0 trunk/arch/score/include/uapi/asm/setup.h | 9 + .../score/include/{ => uapi}/asm/shmbuf.h | 0 .../score/include/{ => uapi}/asm/sigcontext.h | 0 .../score/include/{ => uapi}/asm/siginfo.h | 0 .../score/include/{ => uapi}/asm/signal.h | 0 .../score/include/{ => uapi}/asm/socket.h | 0 .../score/include/{ => uapi}/asm/sockios.h | 0 .../arch/score/include/{ => uapi}/asm/stat.h | 0 .../score/include/{ => uapi}/asm/statfs.h | 0 .../arch/score/include/{ => uapi}/asm/swab.h | 0 .../score/include/{ => uapi}/asm/termbits.h | 0 .../score/include/{ => uapi}/asm/termios.h | 0 .../arch/score/include/{ => uapi}/asm/types.h | 0 .../score/include/{ => uapi}/asm/unistd.h | 1 - trunk/arch/sh/Kconfig | 2 - trunk/arch/sh/include/asm/dma-mapping.h | 1 + trunk/arch/sh/include/asm/unistd.h | 1 - trunk/arch/sh/mm/Kconfig | 1 + trunk/arch/sparc/Kconfig | 2 - trunk/arch/sparc/crypto/aes_asm.S | 20 +- trunk/arch/sparc/crypto/aes_glue.c | 31 +- trunk/arch/sparc/crypto/camellia_glue.c | 3 + trunk/arch/sparc/crypto/des_asm.S | 1 + trunk/arch/sparc/crypto/des_glue.c | 6 + trunk/arch/sparc/include/asm/dma-mapping.h | 1 + trunk/arch/sparc/include/asm/hugetlb.h | 10 +- trunk/arch/sparc/include/asm/pgtable_64.h | 8 +- trunk/arch/sparc/include/asm/unistd.h | 2 +- trunk/arch/sparc/include/uapi/asm/signal.h | 6 - trunk/arch/sparc/kernel/module.c | 4 - trunk/arch/sparc/kernel/sys_sparc32.c | 14 - trunk/arch/tile/Kconfig | 2 - trunk/arch/tile/include/asm/compat.h | 2 - trunk/arch/tile/include/asm/dma-mapping.h | 1 + trunk/arch/tile/include/asm/elf.h | 2 + trunk/arch/tile/include/asm/ptrace.h | 4 +- trunk/arch/tile/include/asm/unistd.h | 2 +- trunk/arch/tile/include/uapi/asm/ptrace.h | 8 +- trunk/arch/tile/kernel/compat.c | 18 - trunk/arch/tile/kernel/module.c | 2 - trunk/arch/tile/kernel/pci.c | 4 +- trunk/arch/tile/kernel/pci_gx.c | 3 +- trunk/arch/tile/kernel/ptrace.c | 140 +- trunk/arch/um/drivers/mconsole_kern.c | 2 +- trunk/arch/um/kernel/signal.c | 5 - trunk/arch/unicore32/Kconfig | 2 - trunk/arch/unicore32/include/asm/ptrace.h | 1 + .../arch/unicore32/include/uapi/asm/unistd.h | 1 - trunk/arch/unicore32/kernel/module.c | 3 - trunk/arch/x86/Kconfig | 5 +- trunk/arch/x86/Makefile | 5 +- trunk/arch/x86/ia32/ia32_signal.c | 55 +- trunk/arch/x86/ia32/ia32entry.S | 1 - trunk/arch/x86/include/asm/dma-mapping.h | 1 + trunk/arch/x86/include/asm/efi.h | 28 +- trunk/arch/x86/include/asm/ia32.h | 10 +- trunk/arch/x86/include/asm/paravirt.h | 2 - trunk/arch/x86/include/asm/pgtable.h | 17 +- trunk/arch/x86/include/asm/pgtable_types.h | 20 + trunk/arch/x86/include/asm/ptrace.h | 7 + trunk/arch/x86/include/asm/sys_ia32.h | 2 - trunk/arch/x86/include/asm/syscalls.h | 3 - trunk/arch/x86/include/asm/unistd.h | 1 - .../arch/x86/include/uapi/asm/hw_breakpoint.h | 1 + trunk/arch/x86/include/uapi/asm/msr-index.h | 37 + trunk/arch/x86/include/uapi/asm/setup.h | 1 + trunk/arch/x86/include/uapi/asm/signal.h | 6 - trunk/arch/x86/kernel/cpu/proc.c | 7 +- trunk/arch/x86/kernel/entry_32.S | 1 - trunk/arch/x86/kernel/entry_64.S | 3 - trunk/arch/x86/kernel/irqinit.c | 40 - trunk/arch/x86/kernel/signal.c | 29 +- trunk/arch/x86/kernel/tboot.c | 78 +- trunk/arch/x86/kernel/traps.c | 6 - trunk/arch/x86/kernel/vsyscall_64.c | 110 +- trunk/arch/x86/mm/pageattr.c | 10 +- trunk/arch/x86/mm/pgtable.c | 8 +- trunk/arch/x86/platform/efi/efi.c | 30 +- trunk/arch/x86/platform/efi/efi_64.c | 15 - trunk/arch/x86/platform/iris/iris.c | 67 +- trunk/arch/x86/syscalls/syscall_32.tbl | 3 +- trunk/arch/x86/syscalls/syscall_64.tbl | 5 +- trunk/arch/x86/um/Kconfig | 3 +- trunk/arch/x86/um/asm/ptrace.h | 1 + trunk/arch/x86/um/signal.c | 9 +- trunk/arch/x86/um/sys_call_table_32.c | 1 - trunk/arch/x86/um/sys_call_table_64.c | 1 - trunk/arch/x86/xen/enlighten.c | 7 +- trunk/arch/x86/xen/smp.c | 2 +- trunk/arch/xtensa/Kconfig | 23 +- trunk/arch/xtensa/Kconfig.debug | 22 +- trunk/arch/xtensa/Makefile | 20 +- trunk/arch/xtensa/boot/Makefile | 25 +- trunk/arch/xtensa/boot/boot-elf/Makefile | 26 +- trunk/arch/xtensa/boot/boot-redboot/Makefile | 26 +- trunk/arch/xtensa/boot/boot-uboot/Makefile | 14 + trunk/arch/xtensa/boot/dts/lx60.dts | 11 + trunk/arch/xtensa/boot/dts/ml605.dts | 11 + .../xtensa/boot/dts/xtfpga-flash-16m.dtsi | 26 + .../arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi | 18 + trunk/arch/xtensa/boot/dts/xtfpga.dtsi | 56 + trunk/arch/xtensa/include/asm/atomic.h | 271 +- trunk/arch/xtensa/include/asm/barrier.h | 6 +- trunk/arch/xtensa/include/asm/bitops.h | 127 +- trunk/arch/xtensa/include/asm/bootparam.h | 20 +- trunk/arch/xtensa/include/asm/cacheasm.h | 1 - trunk/arch/xtensa/include/asm/cacheflush.h | 3 +- trunk/arch/xtensa/include/asm/checksum.h | 19 +- trunk/arch/xtensa/include/asm/cmpxchg.h | 74 +- trunk/arch/xtensa/include/asm/current.h | 2 +- trunk/arch/xtensa/include/asm/delay.h | 7 +- trunk/arch/xtensa/include/asm/dma-mapping.h | 6 +- trunk/arch/xtensa/include/asm/elf.h | 10 +- trunk/arch/xtensa/include/asm/highmem.h | 1 - .../arch/xtensa/include/asm/initialize_mmu.h | 55 + trunk/arch/xtensa/include/asm/mmu.h | 2 +- trunk/arch/xtensa/include/asm/mmu_context.h | 2 +- trunk/arch/xtensa/include/asm/nommu.h | 3 - trunk/arch/xtensa/include/asm/nommu_context.h | 2 +- trunk/arch/xtensa/include/asm/page.h | 20 +- trunk/arch/xtensa/include/asm/pci-bridge.h | 2 +- trunk/arch/xtensa/include/asm/pci.h | 2 +- trunk/arch/xtensa/include/asm/pgalloc.h | 2 +- trunk/arch/xtensa/include/asm/pgtable.h | 8 +- trunk/arch/xtensa/include/asm/platform.h | 1 - trunk/arch/xtensa/include/asm/processor.h | 10 +- trunk/arch/xtensa/include/asm/prom.h | 6 + trunk/arch/xtensa/include/asm/ptrace.h | 6 +- trunk/arch/xtensa/include/asm/regs.h | 5 +- trunk/arch/xtensa/include/asm/spinlock.h | 188 +- trunk/arch/xtensa/include/asm/syscall.h | 11 +- trunk/arch/xtensa/include/asm/traps.h | 23 + trunk/arch/xtensa/include/asm/uaccess.h | 43 +- trunk/arch/xtensa/include/asm/unistd.h | 1 - trunk/arch/xtensa/include/uapi/asm/signal.h | 6 - trunk/arch/xtensa/kernel/Makefile | 8 +- trunk/arch/xtensa/kernel/align.S | 4 +- trunk/arch/xtensa/kernel/asm-offsets.c | 5 +- trunk/arch/xtensa/kernel/coprocessor.S | 25 +- trunk/arch/xtensa/kernel/entry.S | 67 +- trunk/arch/xtensa/kernel/head.S | 21 +- trunk/arch/xtensa/kernel/irq.c | 132 +- trunk/arch/xtensa/kernel/module.c | 2 +- trunk/arch/xtensa/kernel/platform.c | 1 - trunk/arch/xtensa/kernel/process.c | 2 +- trunk/arch/xtensa/kernel/ptrace.c | 3 +- trunk/arch/xtensa/kernel/setup.c | 279 +- trunk/arch/xtensa/kernel/signal.c | 8 +- trunk/arch/xtensa/kernel/syscall.c | 1 - trunk/arch/xtensa/kernel/time.c | 7 +- trunk/arch/xtensa/kernel/traps.c | 18 +- trunk/arch/xtensa/kernel/vectors.S | 67 +- trunk/arch/xtensa/lib/checksum.S | 15 +- trunk/arch/xtensa/lib/memcopy.S | 6 +- trunk/arch/xtensa/lib/pci-auto.c | 9 +- trunk/arch/xtensa/lib/strncpy_user.S | 4 +- trunk/arch/xtensa/lib/strnlen_user.S | 1 - trunk/arch/xtensa/lib/usercopy.S | 1 - trunk/arch/xtensa/mm/cache.c | 27 +- trunk/arch/xtensa/mm/fault.c | 1 - trunk/arch/xtensa/mm/init.c | 16 +- trunk/arch/xtensa/mm/misc.S | 51 +- trunk/arch/xtensa/mm/mmu.c | 2 +- trunk/arch/xtensa/mm/tlb.c | 9 +- .../platforms/iss/include/platform/serial.h | 15 + .../platforms/iss/include/platform/simcall.h | 7 +- trunk/arch/xtensa/platforms/xtfpga/Makefile | 9 + .../xtfpga/include/platform/hardware.h | 69 + .../platforms/xtfpga/include/platform/lcd.h | 20 + .../xtfpga/include/platform/serial.h | 18 + trunk/arch/xtensa/platforms/xtfpga/lcd.c | 76 + trunk/arch/xtensa/platforms/xtfpga/setup.c | 301 ++ trunk/arch/xtensa/variants/s6000/gpio.c | 4 +- trunk/block/Kconfig | 1 + trunk/block/blk-cgroup.c | 2 +- trunk/block/blk-core.c | 127 +- trunk/block/blk-exec.c | 4 +- trunk/block/blk-lib.c | 26 +- trunk/block/blk-settings.c | 6 +- trunk/block/blk-sysfs.c | 4 +- trunk/block/blk-throttle.c | 2 +- trunk/block/blk.h | 4 +- trunk/block/bsg-lib.c | 13 - trunk/block/cfq-iosched.c | 3 +- trunk/block/deadline-iosched.c | 2 +- trunk/block/elevator.c | 16 +- trunk/block/genhd.c | 10 +- trunk/block/partitions/Kconfig | 4 +- trunk/block/partitions/efi.c | 7 +- trunk/block/partitions/msdos.c | 21 +- trunk/drivers/amba/tegra-ahb.c | 2 + trunk/drivers/atm/solos-pci.c | 186 +- trunk/drivers/base/devtmpfs.c | 2 +- trunk/drivers/base/dma-buf.c | 2 + trunk/drivers/bcma/driver_chipcommon_pmu.c | 3 +- trunk/drivers/block/aoe/aoe.h | 57 +- trunk/drivers/block/aoe/aoeblk.c | 104 +- trunk/drivers/block/aoe/aoechr.c | 7 +- trunk/drivers/block/aoe/aoecmd.c | 715 ++- trunk/drivers/block/aoe/aoedev.c | 243 +- trunk/drivers/block/aoe/aoemain.c | 2 +- trunk/drivers/block/aoe/aoenet.c | 15 +- trunk/drivers/block/cciss.c | 21 +- trunk/drivers/block/drbd/Kconfig | 10 +- trunk/drivers/block/drbd/Makefile | 2 + trunk/drivers/block/drbd/drbd_actlog.c | 702 ++- trunk/drivers/block/drbd/drbd_bitmap.c | 249 +- trunk/drivers/block/drbd/drbd_int.h | 1365 +++--- trunk/drivers/block/drbd/drbd_interval.c | 207 + trunk/drivers/block/drbd/drbd_interval.h | 40 + trunk/drivers/block/drbd/drbd_main.c | 3861 +++++++--------- trunk/drivers/block/drbd/drbd_nl.c | 3332 ++++++++------ trunk/drivers/block/drbd/drbd_nla.c | 55 + trunk/drivers/block/drbd/drbd_nla.h | 8 + trunk/drivers/block/drbd/drbd_proc.c | 41 +- trunk/drivers/block/drbd/drbd_receiver.c | 3904 ++++++++++------- trunk/drivers/block/drbd/drbd_req.c | 1574 ++++--- trunk/drivers/block/drbd/drbd_req.h | 187 +- trunk/drivers/block/drbd/drbd_state.c | 1856 ++++++++ trunk/drivers/block/drbd/drbd_state.h | 161 + trunk/drivers/block/drbd/drbd_strings.c | 1 + trunk/drivers/block/drbd/drbd_worker.c | 1237 +++--- trunk/drivers/block/drbd/drbd_wrappers.h | 11 +- trunk/drivers/block/loop.c | 10 + trunk/drivers/block/rbd.c | 1389 ++++-- trunk/drivers/block/rbd_types.h | 2 - trunk/drivers/block/xen-blkback/blkback.c | 301 +- trunk/drivers/block/xen-blkback/common.h | 16 + trunk/drivers/block/xen-blkback/xenbus.c | 23 +- trunk/drivers/block/xen-blkfront.c | 199 +- trunk/drivers/bus/Kconfig | 1 + trunk/drivers/char/agp/intel-agp.h | 91 - trunk/drivers/char/agp/intel-gtt.c | 320 +- trunk/drivers/char/random.c | 40 +- trunk/drivers/char/tpm/tpm_ibmvtpm.c | 81 +- trunk/drivers/char/tpm/tpm_ibmvtpm.h | 5 +- trunk/drivers/char/virtio_console.c | 329 +- trunk/drivers/clk/clk-nomadik.c | 1 + trunk/drivers/crypto/nx/nx-842.c | 20 +- trunk/drivers/crypto/nx/nx.c | 1 - trunk/drivers/dma/dmatest.c | 49 +- trunk/drivers/firmware/dmi_scan.c | 78 +- trunk/drivers/firmware/efivars.c | 1 - trunk/drivers/gpio/Kconfig | 14 + trunk/drivers/gpio/Makefile | 1 + trunk/drivers/gpio/gpio-da9052.c | 6 +- trunk/drivers/gpio/gpio-ich.c | 1 + trunk/drivers/gpio/gpio-mvebu.c | 17 - trunk/drivers/gpio/gpio-tps6586x.c | 9 + trunk/drivers/gpio/gpio-twl4030.c | 12 +- trunk/drivers/gpio/gpio-viperboard.c | 517 +++ trunk/drivers/gpu/drm/Kconfig | 2 + trunk/drivers/gpu/drm/Makefile | 6 +- trunk/drivers/gpu/drm/ast/ast_ttm.c | 12 +- trunk/drivers/gpu/drm/cirrus/cirrus_drv.c | 13 +- trunk/drivers/gpu/drm/cirrus/cirrus_ttm.c | 12 +- trunk/drivers/gpu/drm/drm_crtc.c | 63 +- trunk/drivers/gpu/drm/drm_crtc_helper.c | 161 +- .../{drm_dp_i2c_helper.c => drm_dp_helper.c} | 146 +- trunk/drivers/gpu/drm/drm_edid.c | 48 +- trunk/drivers/gpu/drm/drm_fb_helper.c | 76 +- trunk/drivers/gpu/drm/drm_hashtab.c | 38 +- trunk/drivers/gpu/drm/drm_ioctl.c | 3 + trunk/drivers/gpu/drm/drm_irq.c | 120 +- trunk/drivers/gpu/drm/drm_modes.c | 8 +- trunk/drivers/gpu/drm/drm_pci.c | 2 +- trunk/drivers/gpu/drm/drm_stub.c | 37 +- trunk/drivers/gpu/drm/drm_sysfs.c | 6 +- trunk/drivers/gpu/drm/exynos/Kconfig | 30 + trunk/drivers/gpu/drm/exynos/Makefile | 5 + trunk/drivers/gpu/drm/exynos/exynos_ddc.c | 4 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.c | 115 +- trunk/drivers/gpu/drm/exynos/exynos_drm_buf.h | 4 +- .../drivers/gpu/drm/exynos/exynos_drm_crtc.c | 5 + .../gpu/drm/exynos/exynos_drm_dmabuf.c | 150 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.c | 117 +- trunk/drivers/gpu/drm/exynos/exynos_drm_drv.h | 43 +- .../gpu/drm/exynos/exynos_drm_encoder.c | 36 +- .../gpu/drm/exynos/exynos_drm_encoder.h | 1 + trunk/drivers/gpu/drm/exynos/exynos_drm_fb.c | 94 +- .../drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 74 +- .../drivers/gpu/drm/exynos/exynos_drm_fimc.c | 2001 +++++++++ .../drivers/gpu/drm/exynos/exynos_drm_fimc.h | 37 + .../drivers/gpu/drm/exynos/exynos_drm_fimd.c | 200 +- trunk/drivers/gpu/drm/exynos/exynos_drm_g2d.c | 495 ++- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.c | 435 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gem.h | 58 +- trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1870 ++++++++ trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.h | 38 + .../drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 59 +- .../drivers/gpu/drm/exynos/exynos_drm_hdmi.h | 3 +- .../drivers/gpu/drm/exynos/exynos_drm_iommu.c | 150 + .../drivers/gpu/drm/exynos/exynos_drm_iommu.h | 85 + trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c | 2060 +++++++++ trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.h | 266 ++ .../drivers/gpu/drm/exynos/exynos_drm_plane.c | 12 +- .../gpu/drm/exynos/exynos_drm_rotator.c | 855 ++++ .../gpu/drm/exynos/exynos_drm_rotator.h | 33 + .../drivers/gpu/drm/exynos/exynos_drm_vidi.c | 26 +- trunk/drivers/gpu/drm/exynos/exynos_hdmi.c | 324 +- trunk/drivers/gpu/drm/exynos/exynos_hdmiphy.c | 4 +- trunk/drivers/gpu/drm/exynos/exynos_mixer.c | 376 +- trunk/drivers/gpu/drm/exynos/regs-fimc.h | 669 +++ trunk/drivers/gpu/drm/exynos/regs-gsc.h | 284 ++ trunk/drivers/gpu/drm/exynos/regs-hdmi.h | 22 +- trunk/drivers/gpu/drm/exynos/regs-rotator.h | 73 + trunk/drivers/gpu/drm/gma500/cdv_device.c | 4 +- trunk/drivers/gpu/drm/gma500/cdv_intel_dp.c | 2 +- trunk/drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 6 +- trunk/drivers/gpu/drm/gma500/cdv_intel_lvds.c | 10 +- .../drivers/gpu/drm/gma500/mdfld_dsi_output.c | 12 +- .../gpu/drm/gma500/mdfld_intel_display.c | 2 +- trunk/drivers/gpu/drm/gma500/oaktrail.h | 6 + trunk/drivers/gpu/drm/gma500/oaktrail_crtc.c | 10 +- .../drivers/gpu/drm/gma500/oaktrail_device.c | 2 +- trunk/drivers/gpu/drm/gma500/oaktrail_hdmi.c | 365 +- trunk/drivers/gpu/drm/gma500/oaktrail_lvds.c | 8 +- trunk/drivers/gpu/drm/gma500/psb_intel_lvds.c | 10 +- trunk/drivers/gpu/drm/gma500/psb_intel_sdvo.c | 24 +- trunk/drivers/gpu/drm/i2c/ch7006_drv.c | 20 +- trunk/drivers/gpu/drm/i915/i915_debugfs.c | 66 +- trunk/drivers/gpu/drm/i915/i915_dma.c | 95 +- trunk/drivers/gpu/drm/i915/i915_drv.c | 136 +- trunk/drivers/gpu/drm/i915/i915_drv.h | 472 +- trunk/drivers/gpu/drm/i915/i915_gem.c | 292 +- trunk/drivers/gpu/drm/i915/i915_gem_context.c | 5 +- .../gpu/drm/i915/i915_gem_execbuffer.c | 64 +- trunk/drivers/gpu/drm/i915/i915_gem_gtt.c | 420 +- trunk/drivers/gpu/drm/i915/i915_irq.c | 86 +- trunk/drivers/gpu/drm/i915/i915_reg.h | 308 +- trunk/drivers/gpu/drm/i915/i915_suspend.c | 763 ++-- trunk/drivers/gpu/drm/i915/i915_sysfs.c | 45 +- trunk/drivers/gpu/drm/i915/i915_trace.h | 10 +- trunk/drivers/gpu/drm/i915/intel_bios.c | 3 +- trunk/drivers/gpu/drm/i915/intel_crt.c | 62 +- trunk/drivers/gpu/drm/i915/intel_ddi.c | 1091 ++++- trunk/drivers/gpu/drm/i915/intel_display.c | 2029 ++++++--- trunk/drivers/gpu/drm/i915/intel_dp.c | 961 ++-- trunk/drivers/gpu/drm/i915/intel_drv.h | 123 +- trunk/drivers/gpu/drm/i915/intel_hdmi.c | 135 +- trunk/drivers/gpu/drm/i915/intel_i2c.c | 9 +- trunk/drivers/gpu/drm/i915/intel_lvds.c | 227 +- trunk/drivers/gpu/drm/i915/intel_modes.c | 11 +- trunk/drivers/gpu/drm/i915/intel_opregion.c | 2 + trunk/drivers/gpu/drm/i915/intel_panel.c | 90 +- trunk/drivers/gpu/drm/i915/intel_pm.c | 511 ++- trunk/drivers/gpu/drm/i915/intel_ringbuffer.c | 250 +- trunk/drivers/gpu/drm/i915/intel_ringbuffer.h | 36 +- trunk/drivers/gpu/drm/i915/intel_sdvo.c | 128 +- trunk/drivers/gpu/drm/i915/intel_sprite.c | 101 +- trunk/drivers/gpu/drm/i915/intel_tv.c | 21 +- trunk/drivers/gpu/drm/mgag200/mgag200_main.c | 4 +- trunk/drivers/gpu/drm/mgag200/mgag200_ttm.c | 12 +- trunk/drivers/gpu/drm/nouveau/Makefile | 38 +- .../gpu/drm/nouveau/core/core/engctx.c | 15 + .../gpu/drm/nouveau/core/core/falcon.c | 247 ++ .../gpu/drm/nouveau/core/core/gpuobj.c | 4 +- trunk/drivers/gpu/drm/nouveau/core/core/mm.c | 17 +- .../gpu/drm/nouveau/core/engine/bsp/nv84.c | 108 +- .../gpu/drm/nouveau/core/engine/bsp/nvc0.c | 110 + .../gpu/drm/nouveau/core/engine/bsp/nve0.c | 110 + .../gpu/drm/nouveau/core/engine/copy/nva3.c | 124 +- .../gpu/drm/nouveau/core/engine/copy/nvc0.c | 167 +- .../gpu/drm/nouveau/core/engine/copy/nve0.c | 54 +- .../gpu/drm/nouveau/core/engine/crypt/nv84.c | 46 +- .../gpu/drm/nouveau/core/engine/crypt/nv98.c | 83 +- .../drm/nouveau/core/engine/disp/dacnv50.c | 88 + .../drm/nouveau/core/engine/disp/hdanva3.c | 48 + .../drm/nouveau/core/engine/disp/hdanvd0.c | 53 + .../drm/nouveau/core/engine/disp/hdminv84.c | 66 + .../drm/nouveau/core/engine/disp/hdminva3.c | 66 + .../drm/nouveau/core/engine/disp/hdminvd0.c | 62 + .../gpu/drm/nouveau/core/engine/disp/nv50.c | 1144 ++++- .../gpu/drm/nouveau/core/engine/disp/nv50.h | 142 + .../gpu/drm/nouveau/core/engine/disp/nv84.c | 98 + .../gpu/drm/nouveau/core/engine/disp/nv94.c | 109 + .../gpu/drm/nouveau/core/engine/disp/nva0.c | 88 + .../gpu/drm/nouveau/core/engine/disp/nva3.c | 111 + .../gpu/drm/nouveau/core/engine/disp/nvd0.c | 884 +++- .../gpu/drm/nouveau/core/engine/disp/nve0.c | 94 + .../drm/nouveau/core/engine/disp/sornv50.c | 112 + .../drm/nouveau/core/engine/disp/sornv94.c | 190 + .../drm/nouveau/core/engine/disp/sornvd0.c | 126 + .../gpu/drm/nouveau/core/engine/dmaobj/base.c | 71 +- .../gpu/drm/nouveau/core/engine/dmaobj/nv04.c | 68 +- .../gpu/drm/nouveau/core/engine/dmaobj/nv50.c | 126 +- .../gpu/drm/nouveau/core/engine/dmaobj/nvc0.c | 104 +- .../gpu/drm/nouveau/core/engine/dmaobj/nvd0.c | 122 + .../gpu/drm/nouveau/core/engine/fifo/base.c | 19 +- .../gpu/drm/nouveau/core/engine/fifo/nv04.c | 17 +- .../gpu/drm/nouveau/core/engine/fifo/nv10.c | 6 +- .../gpu/drm/nouveau/core/engine/fifo/nv17.c | 8 +- .../gpu/drm/nouveau/core/engine/fifo/nv40.c | 8 +- .../gpu/drm/nouveau/core/engine/fifo/nv50.c | 36 +- .../gpu/drm/nouveau/core/engine/fifo/nv84.c | 60 +- .../gpu/drm/nouveau/core/engine/fifo/nvc0.c | 26 +- .../gpu/drm/nouveau/core/engine/fifo/nve0.c | 21 +- .../gpu/drm/nouveau/core/engine/graph/nv04.c | 184 +- .../gpu/drm/nouveau/core/engine/graph/nv10.c | 10 +- .../gpu/drm/nouveau/core/engine/graph/nv20.c | 6 +- .../gpu/drm/nouveau/core/engine/graph/nv40.c | 38 +- .../gpu/drm/nouveau/core/engine/graph/nv50.c | 83 +- .../gpu/drm/nouveau/core/engine/graph/nvc0.c | 2 +- .../gpu/drm/nouveau/core/engine/graph/regs.h | 5 + .../gpu/drm/nouveau/core/engine/mpeg/nv31.c | 6 +- .../gpu/drm/nouveau/core/engine/mpeg/nv50.c | 1 - .../gpu/drm/nouveau/core/engine/ppp/nv98.c | 107 +- .../gpu/drm/nouveau/core/engine/ppp/nvc0.c | 110 + .../drm/nouveau/core/engine/software/nv04.c | 4 +- .../drm/nouveau/core/engine/software/nv10.c | 2 +- .../drm/nouveau/core/engine/software/nv50.c | 10 +- .../drm/nouveau/core/engine/software/nvc0.c | 10 +- .../gpu/drm/nouveau/core/engine/vp/nv84.c | 108 +- .../gpu/drm/nouveau/core/engine/vp/nvc0.c | 110 + .../gpu/drm/nouveau/core/engine/vp/nve0.c | 110 + .../gpu/drm/nouveau/core/include/core/class.h | 225 + .../drm/nouveau/core/include/core/engctx.h | 3 + .../drm/nouveau/core/include/core/falcon.h | 81 + .../drm/nouveau/core/include/core/gpuobj.h | 4 +- .../gpu/drm/nouveau/core/include/core/mm.h | 6 + .../drm/nouveau/core/include/core/object.h | 41 +- .../drm/nouveau/core/include/core/parent.h | 2 +- .../gpu/drm/nouveau/core/include/engine/bsp.h | 41 +- .../drm/nouveau/core/include/engine/copy.h | 39 +- .../drm/nouveau/core/include/engine/crypt.h | 39 - .../drm/nouveau/core/include/engine/disp.h | 5 + .../drm/nouveau/core/include/engine/dmaobj.h | 29 +- .../drm/nouveau/core/include/engine/fifo.h | 6 +- .../gpu/drm/nouveau/core/include/engine/ppp.h | 40 +- .../gpu/drm/nouveau/core/include/engine/vp.h | 41 +- .../nouveau/core/include/subdev/bios/dcb.h | 34 +- .../nouveau/core/include/subdev/bios/disp.h | 48 + .../drm/nouveau/core/include/subdev/bios/dp.h | 32 +- .../gpu/drm/nouveau/core/include/subdev/fb.h | 43 +- .../gpu/drm/nouveau/core/subdev/bar/base.c | 4 +- .../gpu/drm/nouveau/core/subdev/bios/base.c | 32 +- .../gpu/drm/nouveau/core/subdev/bios/dcb.c | 63 + .../gpu/drm/nouveau/core/subdev/bios/disp.c | 178 + .../gpu/drm/nouveau/core/subdev/bios/dp.c | 182 +- .../gpu/drm/nouveau/core/subdev/bios/gpio.c | 4 +- .../gpu/drm/nouveau/core/subdev/bios/init.c | 13 +- .../gpu/drm/nouveau/core/subdev/device/base.c | 28 +- .../gpu/drm/nouveau/core/subdev/device/nv10.c | 4 +- .../gpu/drm/nouveau/core/subdev/device/nv20.c | 6 +- .../gpu/drm/nouveau/core/subdev/device/nv30.c | 6 +- .../gpu/drm/nouveau/core/subdev/device/nv40.c | 28 +- .../gpu/drm/nouveau/core/subdev/device/nv50.c | 26 +- .../gpu/drm/nouveau/core/subdev/device/nvc0.c | 64 +- .../gpu/drm/nouveau/core/subdev/device/nve0.c | 17 +- .../drm/nouveau/core/subdev/devinit/nv50.c | 34 +- .../gpu/drm/nouveau/core/subdev/fb/base.c | 92 +- .../gpu/drm/nouveau/core/subdev/fb/nv04.c | 62 +- .../gpu/drm/nouveau/core/subdev/fb/nv10.c | 52 +- .../gpu/drm/nouveau/core/subdev/fb/nv1a.c | 89 + .../gpu/drm/nouveau/core/subdev/fb/nv20.c | 86 +- .../gpu/drm/nouveau/core/subdev/fb/nv25.c | 81 + .../gpu/drm/nouveau/core/subdev/fb/nv30.c | 51 +- .../gpu/drm/nouveau/core/subdev/fb/nv35.c | 82 + .../gpu/drm/nouveau/core/subdev/fb/nv36.c | 82 + .../gpu/drm/nouveau/core/subdev/fb/nv40.c | 131 +- .../gpu/drm/nouveau/core/subdev/fb/nv41.c | 106 + .../gpu/drm/nouveau/core/subdev/fb/nv44.c | 114 + .../gpu/drm/nouveau/core/subdev/fb/nv46.c | 79 + .../gpu/drm/nouveau/core/subdev/fb/nv47.c | 66 + .../gpu/drm/nouveau/core/subdev/fb/nv49.c | 84 + .../gpu/drm/nouveau/core/subdev/fb/nv4e.c | 72 + .../gpu/drm/nouveau/core/subdev/fb/nv50.c | 393 +- .../gpu/drm/nouveau/core/subdev/fb/nvc0.c | 126 +- .../gpu/drm/nouveau/core/subdev/i2c/aux.c | 2 +- .../drm/nouveau/core/subdev/instmem/nv04.c | 8 +- .../drm/nouveau/core/subdev/instmem/nv40.c | 4 +- .../drm/nouveau/core/subdev/instmem/nv50.c | 4 +- .../gpu/drm/nouveau/core/subdev/mc/base.c | 8 +- .../gpu/drm/nouveau/core/subdev/mc/nv50.c | 1 + .../gpu/drm/nouveau/core/subdev/mc/nv98.c | 1 + .../gpu/drm/nouveau/core/subdev/mc/nvc0.c | 1 + trunk/drivers/gpu/drm/nouveau/nouveau_abi16.c | 27 +- trunk/drivers/gpu/drm/nouveau/nouveau_acpi.c | 30 +- trunk/drivers/gpu/drm/nouveau/nouveau_acpi.h | 4 + trunk/drivers/gpu/drm/nouveau/nouveau_bios.c | 235 +- trunk/drivers/gpu/drm/nouveau/nouveau_bios.h | 9 - trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 65 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.h | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_chan.c | 6 +- .../gpu/drm/nouveau/nouveau_connector.c | 25 +- .../gpu/drm/nouveau/nouveau_connector.h | 16 + trunk/drivers/gpu/drm/nouveau/nouveau_crtc.h | 10 - .../drivers/gpu/drm/nouveau/nouveau_display.c | 25 +- trunk/drivers/gpu/drm/nouveau/nouveau_dp.c | 141 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.c | 98 +- trunk/drivers/gpu/drm/nouveau/nouveau_drm.h | 4 +- .../drivers/gpu/drm/nouveau/nouveau_encoder.h | 7 +- trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_hdmi.c | 261 -- trunk/drivers/gpu/drm/nouveau/nouveau_irq.c | 12 - trunk/drivers/gpu/drm/nouveau/nouveau_prime.c | 4 - trunk/drivers/gpu/drm/nouveau/nouveau_vga.c | 5 +- trunk/drivers/gpu/drm/nouveau/nv04_crtc.c | 6 +- trunk/drivers/gpu/drm/nouveau/nv04_display.c | 5 - trunk/drivers/gpu/drm/nouveau/nv10_fence.c | 7 +- trunk/drivers/gpu/drm/nouveau/nv17_tv.c | 16 +- trunk/drivers/gpu/drm/nouveau/nv50_crtc.c | 764 ---- trunk/drivers/gpu/drm/nouveau/nv50_cursor.c | 136 - trunk/drivers/gpu/drm/nouveau/nv50_dac.c | 321 -- trunk/drivers/gpu/drm/nouveau/nv50_display.c | 2579 +++++++---- trunk/drivers/gpu/drm/nouveau/nv50_display.h | 71 +- trunk/drivers/gpu/drm/nouveau/nv50_evo.c | 403 -- trunk/drivers/gpu/drm/nouveau/nv50_evo.h | 120 - trunk/drivers/gpu/drm/nouveau/nv50_fence.c | 5 +- trunk/drivers/gpu/drm/nouveau/nv50_pm.c | 2 +- trunk/drivers/gpu/drm/nouveau/nv50_sor.c | 530 --- trunk/drivers/gpu/drm/nouveau/nvc0_fence.c | 28 +- trunk/drivers/gpu/drm/nouveau/nvd0_display.c | 2141 --------- trunk/drivers/gpu/drm/radeon/atombios_crtc.c | 2 + trunk/drivers/gpu/drm/radeon/atombios_dp.c | 149 +- .../gpu/drm/radeon/atombios_encoders.c | 2 +- trunk/drivers/gpu/drm/radeon/evergreen.c | 218 +- trunk/drivers/gpu/drm/radeon/evergreen_cs.c | 739 +++- trunk/drivers/gpu/drm/radeon/evergreend.h | 131 + trunk/drivers/gpu/drm/radeon/ni.c | 357 +- trunk/drivers/gpu/drm/radeon/nid.h | 86 + trunk/drivers/gpu/drm/radeon/r100.c | 23 +- trunk/drivers/gpu/drm/radeon/r600.c | 480 +- trunk/drivers/gpu/drm/radeon/r600_cp.c | 7 +- trunk/drivers/gpu/drm/radeon/r600_cs.c | 357 +- trunk/drivers/gpu/drm/radeon/r600_reg.h | 9 + trunk/drivers/gpu/drm/radeon/r600d.h | 86 +- trunk/drivers/gpu/drm/radeon/radeon.h | 38 +- trunk/drivers/gpu/drm/radeon/radeon_asic.c | 198 +- trunk/drivers/gpu/drm/radeon/radeon_asic.h | 34 + trunk/drivers/gpu/drm/radeon/radeon_combios.c | 6 +- .../gpu/drm/radeon/radeon_connectors.c | 62 +- trunk/drivers/gpu/drm/radeon/radeon_cp.c | 14 - trunk/drivers/gpu/drm/radeon/radeon_cs.c | 13 + trunk/drivers/gpu/drm/radeon/radeon_cursor.c | 17 +- trunk/drivers/gpu/drm/radeon/radeon_device.c | 1 + trunk/drivers/gpu/drm/radeon/radeon_display.c | 4 + trunk/drivers/gpu/drm/radeon/radeon_drv.c | 18 +- trunk/drivers/gpu/drm/radeon/radeon_drv.h | 1 - trunk/drivers/gpu/drm/radeon/radeon_fence.c | 2 +- trunk/drivers/gpu/drm/radeon/radeon_gart.c | 1 - trunk/drivers/gpu/drm/radeon/radeon_kms.c | 16 + trunk/drivers/gpu/drm/radeon/radeon_mode.h | 2 +- trunk/drivers/gpu/drm/radeon/radeon_object.c | 52 +- trunk/drivers/gpu/drm/radeon/radeon_object.h | 2 +- trunk/drivers/gpu/drm/radeon/radeon_test.c | 37 +- trunk/drivers/gpu/drm/radeon/radeon_ttm.c | 40 +- trunk/drivers/gpu/drm/radeon/rv515.c | 122 +- trunk/drivers/gpu/drm/radeon/rv770.c | 31 +- trunk/drivers/gpu/drm/radeon/rv770d.h | 71 + trunk/drivers/gpu/drm/radeon/si.c | 355 +- trunk/drivers/gpu/drm/radeon/sid.h | 119 + .../drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 2 +- trunk/drivers/gpu/drm/tegra/Kconfig | 23 + trunk/drivers/gpu/drm/tegra/Makefile | 7 + trunk/drivers/gpu/drm/tegra/dc.c | 834 ++++ trunk/drivers/gpu/drm/tegra/dc.h | 388 ++ trunk/drivers/gpu/drm/tegra/drm.c | 115 + trunk/drivers/gpu/drm/tegra/drm.h | 234 + trunk/drivers/gpu/drm/tegra/fb.c | 56 + trunk/drivers/gpu/drm/tegra/hdmi.c | 1334 ++++++ trunk/drivers/gpu/drm/tegra/hdmi.h | 575 +++ trunk/drivers/gpu/drm/tegra/host1x.c | 325 ++ trunk/drivers/gpu/drm/tegra/output.c | 272 ++ trunk/drivers/gpu/drm/tegra/rgb.c | 228 + trunk/drivers/gpu/drm/ttm/ttm_bo.c | 321 +- trunk/drivers/gpu/drm/ttm/ttm_bo_util.c | 8 +- trunk/drivers/gpu/drm/ttm/ttm_bo_vm.c | 4 +- trunk/drivers/gpu/drm/ttm/ttm_execbuf_util.c | 10 +- trunk/drivers/gpu/drm/ttm/ttm_memory.c | 1 - trunk/drivers/gpu/drm/ttm/ttm_object.c | 51 +- trunk/drivers/gpu/drm/udl/udl_connector.c | 14 +- trunk/drivers/gpu/drm/vmwgfx/Makefile | 3 +- .../gpu/drm/vmwgfx/svga3d_surfacedefs.h | 909 ++++ trunk/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | 23 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 274 ++ trunk/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 22 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 92 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 153 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 917 ++-- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 2 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 7 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 2 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 21 +- .../drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 2113 +++------ .../gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 84 + trunk/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 4 +- trunk/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 893 ++++ trunk/drivers/gpu/vga/vga_switcheroo.c | 6 - trunk/drivers/hwmon/hwmon-vid.c | 10 + trunk/drivers/hwmon/hwmon.c | 26 +- trunk/drivers/hwmon/it87.c | 918 ++-- trunk/drivers/hwmon/twl4030-madc-hwmon.c | 2 +- trunk/drivers/hwmon/w83627ehf.c | 99 +- trunk/drivers/hwmon/w83627hf.c | 81 +- trunk/drivers/i2c/busses/Kconfig | 20 + trunk/drivers/i2c/busses/Makefile | 2 + trunk/drivers/i2c/busses/i2c-at91.c | 338 +- trunk/drivers/i2c/busses/i2c-cbus-gpio.c | 300 ++ trunk/drivers/i2c/busses/i2c-gpio.c | 6 +- trunk/drivers/i2c/busses/i2c-i801.c | 13 +- trunk/drivers/i2c/busses/i2c-mxs.c | 2 +- trunk/drivers/i2c/busses/i2c-nomadik.c | 14 - trunk/drivers/i2c/busses/i2c-ocores.c | 164 +- trunk/drivers/i2c/busses/i2c-omap.c | 226 +- trunk/drivers/i2c/busses/i2c-piix4.c | 5 +- trunk/drivers/i2c/busses/i2c-rcar.c | 6 +- trunk/drivers/i2c/busses/i2c-s3c2410.c | 211 +- trunk/drivers/i2c/busses/i2c-sh_mobile.c | 150 +- trunk/drivers/i2c/busses/i2c-viperboard.c | 480 ++ trunk/drivers/i2c/muxes/i2c-mux-gpio.c | 145 +- trunk/drivers/iio/adc/Kconfig | 14 + trunk/drivers/iio/adc/Makefile | 3 +- trunk/drivers/iio/adc/ti_am335x_adc.c | 260 ++ trunk/drivers/iio/adc/viperboard_adc.c | 181 + trunk/drivers/infiniband/hw/ehca/hcp_if.c | 20 - trunk/drivers/input/gameport/emu10k1-gp.c | 6 +- trunk/drivers/input/gameport/fm801-gp.c | 6 +- trunk/drivers/input/input-mt.c | 2 +- trunk/drivers/input/input.c | 181 +- trunk/drivers/input/joystick/as5011.c | 29 +- trunk/drivers/input/joystick/maplecontrol.c | 6 +- trunk/drivers/input/joystick/walkera0701.c | 7 +- trunk/drivers/input/joystick/xpad.c | 33 +- trunk/drivers/input/keyboard/Kconfig | 3 +- trunk/drivers/input/keyboard/adp5520-keys.c | 6 +- trunk/drivers/input/keyboard/adp5588-keys.c | 18 +- trunk/drivers/input/keyboard/adp5589-keys.c | 21 +- trunk/drivers/input/keyboard/bf54x-keys.c | 6 +- .../drivers/input/keyboard/davinci_keyscan.c | 4 +- trunk/drivers/input/keyboard/ep93xx_keypad.c | 6 +- trunk/drivers/input/keyboard/gpio_keys.c | 90 +- .../drivers/input/keyboard/gpio_keys_polled.c | 26 +- trunk/drivers/input/keyboard/hilkbd.c | 10 +- trunk/drivers/input/keyboard/imx_keypad.c | 9 +- trunk/drivers/input/keyboard/jornada680_kbd.c | 6 +- trunk/drivers/input/keyboard/jornada720_kbd.c | 6 +- trunk/drivers/input/keyboard/lm8323.c | 6 +- trunk/drivers/input/keyboard/lm8333.c | 6 +- trunk/drivers/input/keyboard/locomokbd.c | 8 +- trunk/drivers/input/keyboard/lpc32xx-keys.c | 8 +- trunk/drivers/input/keyboard/matrix_keypad.c | 129 +- trunk/drivers/input/keyboard/max7359_keypad.c | 6 +- trunk/drivers/input/keyboard/mcs_touchkey.c | 6 +- .../drivers/input/keyboard/mpr121_touchkey.c | 12 +- .../input/keyboard/nomadik-ske-keypad.c | 38 +- trunk/drivers/input/keyboard/omap-keypad.c | 6 +- trunk/drivers/input/keyboard/omap4-keypad.c | 10 +- trunk/drivers/input/keyboard/opencores-kbd.c | 6 +- .../drivers/input/keyboard/pmic8xxx-keypad.c | 10 +- trunk/drivers/input/keyboard/pxa27x_keypad.c | 6 +- trunk/drivers/input/keyboard/pxa930_rotary.c | 6 +- trunk/drivers/input/keyboard/qt1070.c | 8 +- trunk/drivers/input/keyboard/qt2160.c | 31 +- trunk/drivers/input/keyboard/samsung-keypad.c | 109 +- trunk/drivers/input/keyboard/sh_keysc.c | 6 +- trunk/drivers/input/keyboard/spear-keyboard.c | 98 +- trunk/drivers/input/keyboard/stmpe-keypad.c | 142 +- trunk/drivers/input/keyboard/tc3589x-keypad.c | 6 +- trunk/drivers/input/keyboard/tca6416-keypad.c | 8 +- trunk/drivers/input/keyboard/tca8418_keypad.c | 179 +- trunk/drivers/input/keyboard/tegra-kbc.c | 16 +- .../drivers/input/keyboard/tnetv107x-keypad.c | 6 +- trunk/drivers/input/keyboard/twl4030_keypad.c | 8 +- trunk/drivers/input/keyboard/w90p910_keypad.c | 6 +- trunk/drivers/input/matrix-keymap.c | 23 +- trunk/drivers/input/misc/88pm80x_onkey.c | 6 +- trunk/drivers/input/misc/88pm860x_onkey.c | 6 +- trunk/drivers/input/misc/Kconfig | 29 +- trunk/drivers/input/misc/Makefile | 2 + trunk/drivers/input/misc/ab8500-ponkey.c | 6 +- trunk/drivers/input/misc/ad714x-i2c.c | 6 +- trunk/drivers/input/misc/ad714x-spi.c | 6 +- trunk/drivers/input/misc/adxl34x-i2c.c | 6 +- trunk/drivers/input/misc/adxl34x-spi.c | 6 +- trunk/drivers/input/misc/bfin_rotary.c | 6 +- trunk/drivers/input/misc/bma150.c | 28 +- trunk/drivers/input/misc/cma3000_d0x_i2c.c | 6 +- trunk/drivers/input/misc/cobalt_btns.c | 6 +- trunk/drivers/input/misc/da9052_onkey.c | 28 +- trunk/drivers/input/misc/da9055_onkey.c | 171 + trunk/drivers/input/misc/dm355evm_keys.c | 6 +- trunk/drivers/input/misc/gp2ap002a00f.c | 8 +- trunk/drivers/input/misc/gpio_tilt_polled.c | 6 +- trunk/drivers/input/misc/ixp4xx-beeper.c | 6 +- trunk/drivers/input/misc/kxtj9.c | 16 +- trunk/drivers/input/misc/m68kspkr.c | 6 +- trunk/drivers/input/misc/max8925_onkey.c | 6 +- trunk/drivers/input/misc/max8997_haptic.c | 6 +- trunk/drivers/input/misc/mc13783-pwrbutton.c | 6 +- trunk/drivers/input/misc/mma8450.c | 6 +- trunk/drivers/input/misc/mpu3050.c | 8 +- trunk/drivers/input/misc/pcap_keys.c | 6 +- trunk/drivers/input/misc/pcf50633-input.c | 6 +- trunk/drivers/input/misc/pcf8574_keypad.c | 6 +- trunk/drivers/input/misc/pcspkr.c | 6 +- trunk/drivers/input/misc/pm8xxx-vibrator.c | 6 +- trunk/drivers/input/misc/pmic8xxx-pwrkey.c | 6 +- trunk/drivers/input/misc/pwm-beeper.c | 20 +- trunk/drivers/input/misc/rb532_button.c | 6 +- trunk/drivers/input/misc/retu-pwrbutton.c | 99 + trunk/drivers/input/misc/rotary_encoder.c | 9 +- trunk/drivers/input/misc/sgi_btns.c | 6 +- trunk/drivers/input/misc/sparcspkr.c | 14 +- trunk/drivers/input/misc/twl4030-pwrbutton.c | 3 +- trunk/drivers/input/misc/twl4030-vibra.c | 6 +- trunk/drivers/input/misc/twl6040-vibra.c | 6 +- trunk/drivers/input/misc/wistron_btns.c | 20 +- trunk/drivers/input/misc/wm831x-on.c | 11 +- trunk/drivers/input/misc/xen-kbdfront.c | 2 +- trunk/drivers/input/mouse/alps.c | 10 +- trunk/drivers/input/mouse/gpio_mouse.c | 6 +- trunk/drivers/input/mouse/maplemouse.c | 6 +- trunk/drivers/input/mouse/navpoint.c | 6 +- trunk/drivers/input/mouse/pxa930_trkball.c | 6 +- trunk/drivers/input/mouse/synaptics_i2c.c | 6 +- trunk/drivers/input/serio/Kconfig | 9 + trunk/drivers/input/serio/Makefile | 1 + trunk/drivers/input/serio/altera_ps2.c | 6 +- trunk/drivers/input/serio/ambakmi.c | 6 +- trunk/drivers/input/serio/arc_ps2.c | 274 ++ trunk/drivers/input/serio/ct82c710.c | 6 +- trunk/drivers/input/serio/gscps2.c | 6 +- trunk/drivers/input/serio/hil_mlc.c | 13 +- trunk/drivers/input/serio/i8042-io.h | 2 +- trunk/drivers/input/serio/i8042-sparcio.h | 6 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 9 + trunk/drivers/input/serio/i8042.c | 6 +- trunk/drivers/input/serio/maceps2.c | 8 +- trunk/drivers/input/serio/pcips2.c | 6 +- trunk/drivers/input/serio/q40kbd.c | 6 +- trunk/drivers/input/serio/rpckbd.c | 6 +- trunk/drivers/input/serio/sa1111ps2.c | 12 +- trunk/drivers/input/serio/serio.c | 11 - trunk/drivers/input/serio/xilinx_ps2.c | 8 +- trunk/drivers/input/tablet/wacom_sys.c | 58 +- trunk/drivers/input/tablet/wacom_wac.c | 32 +- trunk/drivers/input/tablet/wacom_wac.h | 2 + trunk/drivers/input/touchscreen/88pm860x-ts.c | 8 +- trunk/drivers/input/touchscreen/Kconfig | 18 +- trunk/drivers/input/touchscreen/Makefile | 3 +- trunk/drivers/input/touchscreen/ad7877.c | 6 +- trunk/drivers/input/touchscreen/ad7879-i2c.c | 6 +- trunk/drivers/input/touchscreen/ad7879-spi.c | 6 +- trunk/drivers/input/touchscreen/ads7846.c | 10 +- .../drivers/input/touchscreen/atmel_mxt_ts.c | 6 +- .../drivers/input/touchscreen/atmel_tsadcc.c | 6 +- .../drivers/input/touchscreen/auo-pixcir-ts.c | 8 +- trunk/drivers/input/touchscreen/bu21013_ts.c | 125 +- .../drivers/input/touchscreen/cy8ctmg110_ts.c | 19 +- trunk/drivers/input/touchscreen/cyttsp_i2c.c | 6 +- trunk/drivers/input/touchscreen/cyttsp_spi.c | 6 +- trunk/drivers/input/touchscreen/da9034-ts.c | 6 +- trunk/drivers/input/touchscreen/da9052_tsi.c | 69 +- trunk/drivers/input/touchscreen/edt-ft5x06.c | 28 +- trunk/drivers/input/touchscreen/eeti_ts.c | 6 +- trunk/drivers/input/touchscreen/egalax_ts.c | 8 +- .../input/touchscreen/h3600_ts_input.c | 479 -- trunk/drivers/input/touchscreen/htcpen.c | 6 +- trunk/drivers/input/touchscreen/ili210x.c | 6 +- .../input/touchscreen/intel-mid-touch.c | 14 +- .../drivers/input/touchscreen/jornada720_ts.c | 6 +- trunk/drivers/input/touchscreen/lpc32xx_ts.c | 6 +- trunk/drivers/input/touchscreen/max11801_ts.c | 8 +- trunk/drivers/input/touchscreen/mc13783_ts.c | 4 +- trunk/drivers/input/touchscreen/mcs5000_ts.c | 6 +- trunk/drivers/input/touchscreen/mms114.c | 68 +- trunk/drivers/input/touchscreen/pcap_ts.c | 6 +- .../drivers/input/touchscreen/pixcir_i2c_ts.c | 6 +- trunk/drivers/input/touchscreen/s3c2410_ts.c | 6 +- trunk/drivers/input/touchscreen/st1232.c | 8 +- trunk/drivers/input/touchscreen/stmpe-ts.c | 133 +- .../drivers/input/touchscreen/ti_am335x_tsc.c | 398 ++ trunk/drivers/input/touchscreen/ti_tscadc.c | 486 -- .../drivers/input/touchscreen/tnetv107x-ts.c | 6 +- trunk/drivers/input/touchscreen/tps6507x-ts.c | 4 +- trunk/drivers/input/touchscreen/tsc2005.c | 8 +- trunk/drivers/input/touchscreen/tsc2007.c | 6 +- trunk/drivers/input/touchscreen/ucb1400_ts.c | 8 +- trunk/drivers/input/touchscreen/w90p910_ts.c | 6 +- trunk/drivers/input/touchscreen/wacom_i2c.c | 6 +- trunk/drivers/input/touchscreen/wm831x-ts.c | 12 +- trunk/drivers/iommu/amd_iommu.c | 196 +- trunk/drivers/iommu/amd_iommu_types.h | 1 + trunk/drivers/iommu/intel-iommu.c | 42 +- trunk/drivers/iommu/omap-iommu.c | 68 +- trunk/drivers/iommu/omap-iommu.h | 3 - trunk/drivers/iommu/omap-iommu2.c | 36 - trunk/drivers/iommu/tegra-gart.c | 2 +- trunk/drivers/iommu/tegra-smmu.c | 6 +- trunk/drivers/isdn/mISDN/dsp_core.c | 3 +- trunk/drivers/lguest/core.c | 2 +- trunk/drivers/macintosh/smu.c | 2 +- .../drivers/macintosh/windfarm_fcu_controls.c | 14 +- .../drivers/macintosh/windfarm_lm75_sensor.c | 14 +- .../macintosh/windfarm_max6690_sensor.c | 13 +- trunk/drivers/macintosh/windfarm_smu_sat.c | 13 +- trunk/drivers/md/md.c | 258 +- trunk/drivers/md/md.h | 28 +- trunk/drivers/md/raid1.c | 15 +- trunk/drivers/md/raid10.c | 15 +- trunk/drivers/md/raid5.c | 55 +- trunk/drivers/message/fusion/mptscsih.c | 1 + trunk/drivers/mfd/Kconfig | 63 +- trunk/drivers/mfd/Makefile | 10 +- trunk/drivers/mfd/ab8500-core.c | 107 +- trunk/drivers/mfd/arizona-core.c | 17 +- trunk/drivers/mfd/arizona-irq.c | 1 + trunk/drivers/mfd/as3711.c | 217 + trunk/drivers/mfd/da9052-core.c | 273 +- trunk/drivers/mfd/da9052-irq.c | 288 ++ trunk/drivers/mfd/db8500-prcmu.c | 8 +- trunk/drivers/mfd/jz4740-adc.c | 20 +- trunk/drivers/mfd/lpc_ich.c | 16 +- trunk/drivers/mfd/mc13xxx-core.c | 94 +- trunk/drivers/mfd/mc13xxx-i2c.c | 22 +- trunk/drivers/mfd/mc13xxx-spi.c | 29 +- trunk/drivers/mfd/mc13xxx.h | 18 +- trunk/drivers/mfd/mfd-core.c | 15 +- trunk/drivers/mfd/omap-usb-host.c | 3 +- trunk/drivers/mfd/rc5t583-irq.c | 2 +- trunk/drivers/mfd/retu-mfd.c | 264 ++ trunk/drivers/mfd/rtsx_pcr.c | 1 + trunk/drivers/mfd/sec-irq.c | 102 +- trunk/drivers/mfd/sta2x11-mfd.c | 536 ++- trunk/drivers/mfd/stmpe-i2c.c | 8 +- trunk/drivers/mfd/stmpe.c | 208 +- trunk/drivers/mfd/ti_am335x_tscadc.c | 274 ++ trunk/drivers/mfd/tps6507x.c | 21 +- trunk/drivers/mfd/tps65090.c | 312 +- trunk/drivers/mfd/tps65217.c | 12 + trunk/drivers/mfd/tps6586x.c | 103 +- trunk/drivers/mfd/tps65910-irq.c | 260 -- trunk/drivers/mfd/tps65910.c | 234 +- trunk/drivers/mfd/tps80031.c | 574 +++ trunk/drivers/mfd/twl-core.c | 227 +- trunk/drivers/mfd/twl4030-irq.c | 10 +- trunk/drivers/mfd/twl4030-madc.c | 14 +- trunk/drivers/mfd/twl4030-power.c | 124 +- trunk/drivers/mfd/twl6030-irq.c | 4 +- trunk/drivers/mfd/twl6040-irq.c | 205 - .../drivers/mfd/{twl6040-core.c => twl6040.c} | 138 +- trunk/drivers/mfd/viperboard.c | 137 + trunk/drivers/mfd/wm5102-tables.c | 35 +- trunk/drivers/mfd/wm8994-core.c | 17 +- trunk/drivers/misc/sgi-xp/xpc_main.c | 34 +- trunk/drivers/mmc/host/Makefile | 2 + trunk/drivers/mmc/host/rtsx_pci_sdmmc.c | 4 +- trunk/drivers/mtd/ar7part.c | 7 +- trunk/drivers/mtd/bcm63xxpart.c | 32 +- trunk/drivers/mtd/chips/cfi_cmdset_0002.c | 16 +- trunk/drivers/mtd/cmdlinepart.c | 91 +- trunk/drivers/mtd/devices/bcm47xxsflash.c | 4 +- trunk/drivers/mtd/devices/block2mtd.c | 4 +- trunk/drivers/mtd/devices/docg3.c | 2 +- trunk/drivers/mtd/devices/docprobe.c | 2 - trunk/drivers/mtd/devices/m25p80.c | 48 +- trunk/drivers/mtd/devices/mtd_dataflash.c | 14 +- trunk/drivers/mtd/devices/spear_smi.c | 23 +- trunk/drivers/mtd/devices/sst25l.c | 10 +- trunk/drivers/mtd/maps/Kconfig | 7 - trunk/drivers/mtd/maps/Makefile | 1 - trunk/drivers/mtd/maps/amd76xrom.c | 7 +- trunk/drivers/mtd/maps/autcpu12-nvram.c | 6 +- trunk/drivers/mtd/maps/bfin-async-flash.c | 9 +- trunk/drivers/mtd/maps/ck804xrom.c | 6 +- trunk/drivers/mtd/maps/esb2rom.c | 6 +- trunk/drivers/mtd/maps/fortunet.c | 277 -- trunk/drivers/mtd/maps/gpio-addr-flash.c | 12 +- trunk/drivers/mtd/maps/ichxrom.c | 8 +- trunk/drivers/mtd/maps/intel_vr_nor.c | 18 +- trunk/drivers/mtd/maps/lantiq-flash.c | 8 +- trunk/drivers/mtd/maps/latch-addr-flash.c | 4 +- trunk/drivers/mtd/maps/pci.c | 6 +- trunk/drivers/mtd/maps/physmap_of.c | 19 +- trunk/drivers/mtd/maps/pismo.c | 18 +- trunk/drivers/mtd/maps/pxa2xx-flash.c | 6 +- trunk/drivers/mtd/maps/sa1100-flash.c | 6 +- trunk/drivers/mtd/maps/scb2_flash.c | 8 +- trunk/drivers/mtd/maps/sun_uflash.c | 6 +- trunk/drivers/mtd/maps/vmu-flash.c | 10 +- trunk/drivers/mtd/mtd_blkdevs.c | 51 +- trunk/drivers/mtd/mtdoops.c | 15 +- trunk/drivers/mtd/nand/Kconfig | 34 +- trunk/drivers/mtd/nand/Makefile | 4 +- trunk/drivers/mtd/nand/ams-delta.c | 6 +- trunk/drivers/mtd/nand/atmel_nand.c | 28 +- trunk/drivers/mtd/nand/au1550nd.c | 8 +- trunk/drivers/mtd/nand/bcm47xxnflash/Makefile | 4 + .../mtd/nand/bcm47xxnflash/bcm47xxnflash.h | 22 + trunk/drivers/mtd/nand/bcm47xxnflash/main.c | 108 + .../mtd/nand/bcm47xxnflash/ops_bcm4706.c | 413 ++ trunk/drivers/mtd/nand/bf5xx_nand.c | 8 +- trunk/drivers/mtd/nand/cafe_nand.c | 12 +- trunk/drivers/mtd/nand/cs553x_nand.c | 3 +- trunk/drivers/mtd/nand/davinci_nand.c | 13 +- trunk/drivers/mtd/nand/denali.c | 162 +- trunk/drivers/mtd/nand/denali.h | 5 + trunk/drivers/mtd/nand/denali_dt.c | 167 + trunk/drivers/mtd/nand/denali_pci.c | 144 + trunk/drivers/mtd/nand/diskonchip.c | 2 - trunk/drivers/mtd/nand/docg4.c | 73 +- trunk/drivers/mtd/nand/fsl_elbc_nand.c | 17 +- trunk/drivers/mtd/nand/fsl_ifc_nand.c | 6 +- trunk/drivers/mtd/nand/fsl_upm.c | 8 +- trunk/drivers/mtd/nand/fsmc_nand.c | 106 +- trunk/drivers/mtd/nand/gpio.c | 34 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-lib.c | 10 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 41 +- trunk/drivers/mtd/nand/gpmi-nand/gpmi-nand.h | 1 - trunk/drivers/mtd/nand/jz4740_nand.c | 14 +- trunk/drivers/mtd/nand/lpc32xx_mlc.c | 6 +- trunk/drivers/mtd/nand/lpc32xx_slc.c | 6 +- trunk/drivers/mtd/nand/mpc5121_nfc.c | 8 +- trunk/drivers/mtd/nand/mxc_nand.c | 12 +- trunk/drivers/mtd/nand/nand_base.c | 114 +- trunk/drivers/mtd/nand/nandsim.c | 191 +- trunk/drivers/mtd/nand/ndfc.c | 6 +- trunk/drivers/mtd/nand/nomadik_nand.c | 235 - trunk/drivers/mtd/nand/nuc900_nand.c | 6 +- trunk/drivers/mtd/nand/omap2.c | 2 +- trunk/drivers/mtd/nand/orion_nand.c | 4 +- trunk/drivers/mtd/nand/pasemi_nand.c | 4 +- trunk/drivers/mtd/nand/plat_nand.c | 6 +- trunk/drivers/mtd/nand/s3c2410.c | 7 +- trunk/drivers/mtd/nand/sh_flctl.c | 306 +- trunk/drivers/mtd/nand/sharpsl.c | 6 +- trunk/drivers/mtd/nand/socrates_nand.c | 6 +- trunk/drivers/mtd/ofpart.c | 5 +- trunk/drivers/mtd/onenand/generic.c | 6 +- trunk/drivers/mtd/onenand/omap2.c | 6 +- trunk/drivers/mtd/onenand/samsung.c | 4 +- trunk/drivers/mtd/tests/mtd_nandbiterrs.c | 73 +- trunk/drivers/mtd/tests/mtd_nandecctest.c | 6 +- trunk/drivers/mtd/tests/mtd_oobtest.c | 171 +- trunk/drivers/mtd/tests/mtd_pagetest.c | 152 +- trunk/drivers/mtd/tests/mtd_readtest.c | 44 +- trunk/drivers/mtd/tests/mtd_speedtest.c | 88 +- trunk/drivers/mtd/tests/mtd_stresstest.c | 44 +- trunk/drivers/mtd/tests/mtd_subpagetest.c | 124 +- trunk/drivers/mtd/tests/mtd_torturetest.c | 73 +- trunk/drivers/mtd/ubi/attach.c | 23 +- trunk/drivers/mtd/ubi/build.c | 12 +- trunk/drivers/mtd/ubi/debug.c | 34 +- trunk/drivers/mtd/ubi/debug.h | 57 +- trunk/drivers/mtd/ubi/fastmap.c | 6 +- trunk/drivers/mtd/ubi/gluebi.c | 28 +- trunk/drivers/mtd/ubi/io.c | 14 +- trunk/drivers/mtd/ubi/ubi.h | 40 +- trunk/drivers/mtd/ubi/upd.c | 6 +- trunk/drivers/mtd/ubi/vmt.c | 4 +- trunk/drivers/mtd/ubi/vtbl.c | 2 +- trunk/drivers/mtd/ubi/wl.c | 7 +- trunk/drivers/net/bonding/bond_main.c | 2 - .../net/can/sja1000/sja1000_of_platform.c | 2 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 5 +- trunk/drivers/net/ethernet/emulex/benet/be.h | 2 +- .../net/ethernet/emulex/benet/be_cmds.c | 5 + .../net/ethernet/emulex/benet/be_main.c | 59 +- trunk/drivers/net/ethernet/freescale/Kconfig | 3 +- .../drivers/net/ethernet/ibm/ehea/ehea_phyp.h | 20 - trunk/drivers/net/ethernet/micrel/ksz884x.c | 12 +- .../net/ethernet/qlogic/qlcnic/qlcnic.h | 4 +- .../net/ethernet/qlogic/qlcnic/qlcnic_ctx.c | 5 +- .../net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 5 +- .../net/ethernet/qlogic/qlcnic/qlcnic_main.c | 5 - .../ethernet/qlogic/qlcnic/qlcnic_minidump.c | 3 +- trunk/drivers/net/ethernet/realtek/8139cp.c | 18 +- trunk/drivers/net/ethernet/smsc/smc91x.c | 4 +- trunk/drivers/net/ethernet/smsc/smsc911x.c | 4 +- .../net/ethernet/stmicro/stmmac/stmmac.h | 6 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 22 +- trunk/drivers/net/ethernet/ti/cpts.c | 2 - trunk/drivers/net/tun.c | 87 +- trunk/drivers/net/usb/cdc_ether.c | 45 +- trunk/drivers/net/usb/cdc_ncm.c | 10 +- trunk/drivers/net/usb/qmi_wwan.c | 15 + trunk/drivers/net/usb/usbnet.c | 25 +- trunk/drivers/net/virtio_net.c | 48 +- trunk/drivers/net/wimax/i2400m/i2400m-usb.h | 3 + trunk/drivers/net/wimax/i2400m/usb.c | 6 + trunk/drivers/net/wireless/Kconfig | 6 +- trunk/drivers/net/wireless/Makefile | 2 +- trunk/drivers/net/wireless/rt2x00/rt2x00dev.c | 8 + trunk/drivers/of/base.c | 144 +- trunk/drivers/of/fdt.c | 10 +- trunk/drivers/pinctrl/pinctrl-exynos5440.c | 2 +- trunk/drivers/pinctrl/pinctrl-samsung.c | 2 +- trunk/drivers/pinctrl/pinctrl-samsung.h | 2 +- trunk/drivers/platform/x86/asus-nb-wmi.c | 2 +- trunk/drivers/platform/x86/asus-wmi.c | 2 +- trunk/drivers/platform/x86/eeepc-wmi.c | 2 +- trunk/drivers/power/charger-manager.c | 38 +- trunk/drivers/power/da9052-battery.c | 44 +- trunk/drivers/pwm/Kconfig | 39 +- trunk/drivers/pwm/Makefile | 5 +- trunk/drivers/pwm/core.c | 29 + trunk/drivers/pwm/pwm-imx.c | 2 +- trunk/drivers/pwm/pwm-lpc32xx.c | 23 +- trunk/drivers/pwm/pwm-samsung.c | 1 + trunk/drivers/pwm/pwm-spear.c | 276 ++ trunk/drivers/pwm/pwm-tiecap.c | 48 +- trunk/drivers/pwm/pwm-tiehrpwm.c | 62 +- trunk/drivers/pwm/pwm-tipwmss.c | 139 + trunk/drivers/pwm/pwm-tipwmss.h | 39 + trunk/drivers/pwm/pwm-twl-led.c | 344 ++ trunk/drivers/pwm/pwm-twl.c | 359 ++ trunk/drivers/pwm/pwm-twl6030.c | 184 - trunk/drivers/pwm/pwm-vt8500.c | 98 +- trunk/drivers/rpmsg/virtio_rpmsg_bus.c | 6 +- trunk/drivers/rtc/Kconfig | 31 +- trunk/drivers/rtc/Makefile | 2 + trunk/drivers/rtc/class.c | 1 - trunk/drivers/rtc/rtc-da9055.c | 413 ++ trunk/drivers/rtc/rtc-davinci.c | 21 +- trunk/drivers/rtc/rtc-dev.c | 19 - trunk/drivers/rtc/rtc-imxdi.c | 12 + trunk/drivers/rtc/rtc-omap.c | 80 +- trunk/drivers/rtc/rtc-pcf8523.c | 326 ++ trunk/drivers/rtc/rtc-s3c.c | 52 +- trunk/drivers/rtc/rtc-spear.c | 91 +- trunk/drivers/rtc/rtc-test.c | 14 +- trunk/drivers/rtc/rtc-tps65910.c | 9 +- trunk/drivers/rtc/rtc-twl.c | 32 +- trunk/drivers/rtc/rtc-vt8500.c | 15 +- trunk/drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- trunk/drivers/scsi/scsi_lib.c | 2 +- trunk/drivers/scsi/virtio_scsi.c | 24 +- trunk/drivers/spi/spi-atmel.c | 17 +- trunk/drivers/spi/spi-s3c64xx.c | 10 +- trunk/drivers/spi/spi-sh-hspi.c | 2 +- trunk/drivers/spi/spi.c | 5 +- trunk/drivers/staging/android/binder.c | 3 +- trunk/drivers/tty/serial/omap-serial.c | 3 +- trunk/drivers/usb/musb/musb_core.c | 12 +- trunk/drivers/usb/musb/musb_io.h | 21 - trunk/drivers/usb/musb/tusb6010.c | 5 +- trunk/drivers/usb/phy/Kconfig | 1 + trunk/drivers/vfio/pci/vfio_pci.c | 83 +- trunk/drivers/vfio/vfio.c | 34 +- trunk/drivers/video/Kconfig | 8 +- trunk/drivers/video/backlight/88pm860x_bl.c | 18 +- trunk/drivers/video/backlight/atmel-pwm-bl.c | 7 +- trunk/drivers/video/backlight/backlight.c | 29 + trunk/drivers/video/backlight/corgi_lcd.c | 20 +- trunk/drivers/video/backlight/da903x_bl.c | 15 +- trunk/drivers/video/backlight/da9052_bl.c | 2 +- trunk/drivers/video/backlight/generic_bl.c | 4 +- trunk/drivers/video/backlight/hp680_bl.c | 4 +- trunk/drivers/video/backlight/ili9320.c | 14 +- trunk/drivers/video/backlight/ili9320.h | 2 +- trunk/drivers/video/backlight/jornada720_bl.c | 31 +- trunk/drivers/video/backlight/l4f00242t03.c | 3 +- trunk/drivers/video/backlight/lcd.c | 8 +- trunk/drivers/video/backlight/lm3630_bl.c | 2 +- trunk/drivers/video/backlight/lm3639_bl.c | 2 +- trunk/drivers/video/backlight/lms283gf05.c | 17 +- trunk/drivers/video/backlight/locomolcd.c | 38 +- trunk/drivers/video/backlight/lp855x_bl.c | 51 +- trunk/drivers/video/backlight/max8925_bl.c | 11 +- trunk/drivers/video/backlight/omap1_bl.c | 4 +- trunk/drivers/video/backlight/pandora_bl.c | 8 +- .../video/backlight/pcf50633-backlight.c | 8 +- trunk/drivers/video/backlight/platform_lcd.c | 2 +- trunk/drivers/video/backlight/s6e63m0.c | 2 +- trunk/drivers/video/backlight/tdo24m.c | 33 +- trunk/drivers/video/backlight/tosa_bl.c | 7 +- trunk/drivers/video/backlight/tosa_lcd.c | 24 +- trunk/drivers/video/backlight/vgg2432a4.c | 10 +- trunk/drivers/video/gxt4500.c | 15 +- trunk/drivers/video/omap2/Kconfig | 4 + trunk/drivers/virt/fsl_hypervisor.c | 3 - trunk/drivers/virtio/virtio.c | 30 +- trunk/drivers/virtio/virtio_balloon.c | 7 +- trunk/drivers/virtio/virtio_mmio.c | 30 +- trunk/drivers/virtio/virtio_pci.c | 20 +- trunk/drivers/virtio/virtio_ring.c | 46 +- trunk/drivers/w1/masters/Kconfig | 1 + trunk/drivers/xen/swiotlb-xen.c | 25 +- trunk/fs/Kconfig | 5 +- trunk/fs/Makefile | 1 + trunk/fs/adfs/inode.c | 15 +- trunk/fs/affs/file.c | 18 +- trunk/fs/affs/inode.c | 5 +- trunk/fs/attr.c | 11 +- trunk/fs/autofs4/autofs_i.h | 8 +- trunk/fs/autofs4/dev-ioctl.c | 4 +- trunk/fs/autofs4/inode.c | 24 +- trunk/fs/autofs4/waitq.c | 5 +- trunk/fs/bad_inode.c | 2 +- trunk/fs/bfs/file.c | 15 +- trunk/fs/binfmt_elf.c | 4 +- trunk/fs/binfmt_em86.c | 1 - trunk/fs/binfmt_misc.c | 11 +- trunk/fs/binfmt_script.c | 8 +- trunk/fs/block_dev.c | 4 +- trunk/fs/btrfs/Makefile | 2 +- trunk/fs/btrfs/acl.c | 2 + trunk/fs/btrfs/backref.c | 16 +- trunk/fs/btrfs/btrfs_inode.h | 4 + trunk/fs/btrfs/check-integrity.c | 31 +- trunk/fs/btrfs/compression.c | 6 +- trunk/fs/btrfs/ctree.c | 229 +- trunk/fs/btrfs/ctree.h | 182 +- trunk/fs/btrfs/delayed-inode.c | 11 +- trunk/fs/btrfs/dev-replace.c | 856 ++++ trunk/fs/btrfs/dev-replace.h | 44 + trunk/fs/btrfs/dir-item.c | 59 + trunk/fs/btrfs/disk-io.c | 142 +- trunk/fs/btrfs/disk-io.h | 4 +- trunk/fs/btrfs/extent-tree.c | 227 +- trunk/fs/btrfs/extent_io.c | 37 +- trunk/fs/btrfs/extent_io.h | 4 +- trunk/fs/btrfs/extent_map.c | 24 +- trunk/fs/btrfs/extent_map.h | 2 + trunk/fs/btrfs/file-item.c | 21 +- trunk/fs/btrfs/file.c | 422 +- trunk/fs/btrfs/free-space-cache.c | 51 +- trunk/fs/btrfs/inode-map.c | 5 +- trunk/fs/btrfs/inode.c | 500 ++- trunk/fs/btrfs/ioctl.c | 317 +- trunk/fs/btrfs/ioctl.h | 48 +- trunk/fs/btrfs/math.h | 44 + trunk/fs/btrfs/ordered-data.c | 90 +- trunk/fs/btrfs/ordered-data.h | 7 +- trunk/fs/btrfs/print-tree.c | 3 + trunk/fs/btrfs/reada.c | 31 +- trunk/fs/btrfs/relocation.c | 40 +- trunk/fs/btrfs/root-tree.c | 4 +- trunk/fs/btrfs/scrub.c | 1836 +++++--- trunk/fs/btrfs/send.c | 8 +- trunk/fs/btrfs/super.c | 48 +- trunk/fs/btrfs/transaction.c | 170 +- trunk/fs/btrfs/transaction.h | 2 +- trunk/fs/btrfs/tree-log.c | 477 +- trunk/fs/btrfs/volumes.c | 966 +++- trunk/fs/btrfs/volumes.h | 35 +- trunk/fs/btrfs/xattr.c | 13 +- trunk/fs/cachefiles/interface.c | 57 +- trunk/fs/cachefiles/internal.h | 2 + trunk/fs/cachefiles/key.c | 2 +- trunk/fs/cachefiles/namei.c | 3 +- trunk/fs/cachefiles/rdwr.c | 114 +- trunk/fs/cachefiles/xattr.c | 2 +- trunk/fs/ceph/addr.c | 60 +- trunk/fs/ceph/caps.c | 18 +- trunk/fs/ceph/dir.c | 4 +- trunk/fs/ceph/export.c | 4 +- trunk/fs/ceph/file.c | 79 +- trunk/fs/ceph/inode.c | 15 +- trunk/fs/ceph/mds_client.c | 11 +- trunk/fs/ceph/super.c | 4 +- trunk/fs/cifs/cifsacl.c | 12 +- trunk/fs/cifs/cifsfs.c | 8 +- trunk/fs/configfs/dir.c | 4 +- trunk/fs/dcache.c | 35 +- trunk/fs/eventfd.c | 20 + trunk/fs/eventpoll.c | 28 + trunk/fs/exec.c | 55 +- trunk/fs/exofs/inode.c | 16 +- trunk/fs/exportfs/expfs.c | 23 +- trunk/fs/ext3/dir.c | 6 +- trunk/fs/ext3/inode.c | 3 +- trunk/fs/ext3/super.c | 3 - trunk/fs/ext4/Kconfig | 15 - trunk/fs/ext4/Makefile | 4 +- trunk/fs/ext4/acl.c | 6 +- trunk/fs/ext4/dir.c | 47 +- trunk/fs/ext4/ext4.h | 165 +- trunk/fs/ext4/ext4_extents.h | 40 - trunk/fs/ext4/ext4_jbd2.h | 7 - trunk/fs/ext4/extents.c | 480 +- trunk/fs/ext4/extents_status.c | 500 +++ trunk/fs/ext4/extents_status.h | 45 + trunk/fs/ext4/file.c | 338 +- trunk/fs/ext4/fsync.c | 6 +- trunk/fs/ext4/ialloc.c | 6 +- trunk/fs/ext4/indirect.c | 5 +- trunk/fs/ext4/inline.c | 1884 ++++++++ trunk/fs/ext4/inode.c | 629 +-- trunk/fs/ext4/mballoc.c | 60 +- trunk/fs/ext4/migrate.c | 1 + trunk/fs/ext4/move_extent.c | 1 + trunk/fs/ext4/namei.c | 531 ++- trunk/fs/ext4/page-io.c | 3 +- trunk/fs/ext4/resize.c | 17 +- trunk/fs/ext4/super.c | 57 +- trunk/fs/ext4/symlink.c | 4 - trunk/fs/ext4/xattr.c | 110 +- trunk/fs/ext4/xattr.h | 158 +- trunk/fs/f2fs/Kconfig | 53 + trunk/fs/f2fs/Makefile | 7 + trunk/fs/f2fs/acl.c | 414 ++ trunk/fs/f2fs/acl.h | 57 + trunk/fs/f2fs/checkpoint.c | 794 ++++ trunk/fs/f2fs/data.c | 702 +++ trunk/fs/f2fs/debug.c | 361 ++ trunk/fs/f2fs/dir.c | 672 +++ trunk/fs/f2fs/f2fs.h | 1083 +++++ trunk/fs/f2fs/file.c | 636 +++ trunk/fs/f2fs/gc.c | 742 ++++ trunk/fs/f2fs/gc.h | 117 + trunk/fs/f2fs/hash.c | 97 + trunk/fs/f2fs/inode.c | 268 ++ trunk/fs/f2fs/namei.c | 503 +++ trunk/fs/f2fs/node.c | 1764 ++++++++ trunk/fs/f2fs/node.h | 353 ++ trunk/fs/f2fs/recovery.c | 375 ++ trunk/fs/f2fs/segment.c | 1791 ++++++++ trunk/fs/f2fs/segment.h | 618 +++ trunk/fs/f2fs/super.c | 657 +++ trunk/fs/f2fs/xattr.c | 440 ++ trunk/fs/f2fs/xattr.h | 145 + trunk/fs/fat/dir.c | 5 +- trunk/fs/fat/fat.h | 3 +- trunk/fs/fat/inode.c | 57 +- trunk/fs/fat/misc.c | 13 +- trunk/fs/fhandle.c | 2 +- trunk/fs/file_table.c | 2 +- trunk/fs/fscache/cache.c | 8 +- trunk/fs/fscache/cookie.c | 78 + trunk/fs/fscache/internal.h | 15 +- trunk/fs/fscache/object-list.c | 2 +- trunk/fs/fscache/object.c | 101 +- trunk/fs/fscache/operation.c | 140 +- trunk/fs/fscache/page.c | 195 +- trunk/fs/fscache/stats.c | 17 +- trunk/fs/fuse/dev.c | 4 +- trunk/fs/fuse/dir.c | 20 +- trunk/fs/fuse/file.c | 8 +- trunk/fs/fuse/fuse_i.h | 4 +- trunk/fs/fuse/inode.c | 23 +- trunk/fs/gfs2/file.c | 10 +- trunk/fs/hfs/inode.c | 26 +- trunk/fs/hfsplus/bitmap.c | 13 +- trunk/fs/hfsplus/btree.c | 5 +- trunk/fs/hfsplus/extents.c | 24 +- trunk/fs/hfsplus/hfsplus_fs.h | 2 +- trunk/fs/hfsplus/inode.c | 27 +- trunk/fs/hfsplus/super.c | 15 +- trunk/fs/hpfs/file.c | 20 +- trunk/fs/hpfs/hpfs_fn.h | 1 + trunk/fs/hpfs/inode.c | 5 +- trunk/fs/hppfs/hppfs.c | 2 +- trunk/fs/jbd2/journal.c | 1 - trunk/fs/jbd2/transaction.c | 11 - trunk/fs/jffs2/nodemgmt.c | 6 +- trunk/fs/jfs/file.c | 6 +- trunk/fs/jfs/inode.c | 20 +- trunk/fs/libfs.c | 6 +- trunk/fs/lockd/clnt4xdr.c | 8 - trunk/fs/lockd/clntproc.c | 3 +- trunk/fs/lockd/clntxdr.c | 8 - trunk/fs/lockd/host.c | 15 +- trunk/fs/lockd/mon.c | 3 - trunk/fs/logfs/readwrite.c | 10 +- trunk/fs/minix/file.c | 6 +- trunk/fs/minix/inode.c | 17 +- trunk/fs/mount.h | 3 + trunk/fs/namei.c | 118 +- trunk/fs/namespace.c | 214 +- trunk/fs/ncpfs/inode.c | 4 +- trunk/fs/nfs/Makefile | 2 +- trunk/fs/nfs/blocklayout/blocklayout.c | 1 + trunk/fs/nfs/cache_lib.c | 1 - trunk/fs/nfs/callback.h | 4 +- trunk/fs/nfs/callback_proc.c | 17 +- trunk/fs/nfs/callback_xdr.c | 5 +- trunk/fs/nfs/client.c | 9 +- trunk/fs/nfs/dir.c | 28 +- trunk/fs/nfs/direct.c | 17 +- trunk/fs/nfs/file.c | 10 +- trunk/fs/nfs/fscache.c | 1 + trunk/fs/nfs/fscache.h | 21 +- trunk/fs/nfs/idmap.c | 12 +- trunk/fs/nfs/inode.c | 30 +- trunk/fs/nfs/internal.h | 42 +- trunk/fs/nfs/mount_clnt.c | 7 +- trunk/fs/nfs/nfs2xdr.c | 4 +- trunk/fs/nfs/nfs3proc.c | 6 +- trunk/fs/nfs/nfs3xdr.c | 7 +- trunk/fs/nfs/nfs4_fs.h | 29 +- trunk/fs/nfs/nfs4client.c | 5 +- trunk/fs/nfs/nfs4file.c | 3 +- trunk/fs/nfs/nfs4filelayout.c | 45 +- trunk/fs/nfs/nfs4filelayoutdev.c | 3 +- trunk/fs/nfs/nfs4proc.c | 821 +--- trunk/fs/nfs/nfs4session.c | 552 +++ trunk/fs/nfs/nfs4session.h | 142 + trunk/fs/nfs/nfs4state.c | 143 +- trunk/fs/nfs/nfs4super.c | 1 + trunk/fs/nfs/nfs4xdr.c | 52 +- trunk/fs/nfs/objlayout/objlayout.c | 11 - trunk/fs/nfs/pnfs.c | 17 +- trunk/fs/nfs/proc.c | 43 - trunk/fs/nfs/super.c | 21 +- trunk/fs/nfs/write.c | 34 +- trunk/fs/nfsd/fault_inject.c | 113 +- trunk/fs/nfsd/fault_inject.h | 28 - trunk/fs/nfsd/netns.h | 66 + trunk/fs/nfsd/nfs2acl.c | 2 +- trunk/fs/nfsd/nfs3acl.c | 2 +- trunk/fs/nfsd/nfs3proc.c | 6 +- trunk/fs/nfsd/nfs3xdr.c | 47 +- trunk/fs/nfsd/nfs4callback.c | 69 +- trunk/fs/nfsd/nfs4proc.c | 74 +- trunk/fs/nfsd/nfs4recover.c | 561 ++- trunk/fs/nfsd/nfs4state.c | 1015 +++-- trunk/fs/nfsd/nfs4xdr.c | 324 +- trunk/fs/nfsd/nfsctl.c | 100 +- trunk/fs/nfsd/nfsd.h | 36 +- trunk/fs/nfsd/nfsfh.c | 4 +- trunk/fs/nfsd/nfssvc.c | 203 +- trunk/fs/nfsd/nfsxdr.c | 11 +- trunk/fs/nfsd/state.h | 64 +- trunk/fs/nfsd/vfs.c | 53 +- trunk/fs/nfsd/xdr4.h | 15 +- trunk/fs/nilfs2/file.c | 1 - trunk/fs/nilfs2/inode.c | 24 +- trunk/fs/nilfs2/nilfs.h | 1 + trunk/fs/nilfs2/recovery.c | 3 +- trunk/fs/notify/Makefile | 2 +- trunk/fs/notify/dnotify/dnotify.c | 4 +- trunk/fs/notify/fanotify/fanotify.c | 6 + trunk/fs/notify/fanotify/fanotify_user.c | 39 +- trunk/fs/notify/fdinfo.c | 179 + trunk/fs/notify/fdinfo.h | 27 + trunk/fs/notify/group.c | 47 +- trunk/fs/notify/inode_mark.c | 19 +- trunk/fs/notify/inotify/inotify_fsnotify.c | 4 +- trunk/fs/notify/inotify/inotify_user.c | 36 +- trunk/fs/notify/mark.c | 91 +- trunk/fs/notify/notification.c | 1 + trunk/fs/notify/vfsmount_mark.c | 14 +- trunk/fs/ntfs/file.c | 16 +- trunk/fs/ntfs/inode.c | 8 +- trunk/fs/ntfs/inode.h | 4 + trunk/fs/ocfs2/extent_map.c | 12 +- trunk/fs/ocfs2/file.c | 24 +- trunk/fs/omfs/file.c | 22 +- trunk/fs/open.c | 99 +- trunk/fs/pnode.h | 1 + trunk/fs/proc/Makefile | 1 + trunk/fs/proc/array.c | 23 +- trunk/fs/proc/base.c | 176 +- trunk/fs/proc/fd.c | 2 + trunk/fs/proc/generic.c | 47 +- trunk/fs/proc/inode.c | 6 +- trunk/fs/proc/internal.h | 1 + trunk/fs/proc/namespaces.c | 185 +- trunk/fs/proc/proc_devtree.c | 6 +- trunk/fs/proc/proc_sysctl.c | 7 - trunk/fs/proc/root.c | 17 +- trunk/fs/proc/self.c | 59 + trunk/fs/proc/task_mmu.c | 53 + trunk/fs/pstore/inode.c | 6 +- trunk/fs/quota/quota.c | 4 + trunk/fs/read_write.c | 42 +- trunk/fs/reiserfs/file.c | 3 +- trunk/fs/reiserfs/inode.c | 15 +- trunk/fs/reiserfs/reiserfs.h | 1 + trunk/fs/seq_file.c | 4 +- trunk/fs/signalfd.c | 18 + trunk/fs/stat.c | 16 +- trunk/fs/statfs.c | 9 +- trunk/fs/sysfs/mount.c | 1 + trunk/fs/sysv/file.c | 5 +- trunk/fs/sysv/itree.c | 17 +- trunk/fs/ubifs/debug.c | 8 +- trunk/fs/ubifs/dir.c | 4 +- trunk/fs/udf/inode.c | 14 +- trunk/fs/ufs/inode.c | 15 +- trunk/fs/utimes.c | 6 +- trunk/fs/xattr.c | 72 +- trunk/include/asm-generic/io.h | 43 +- trunk/include/asm-generic/mmu.h | 6 +- trunk/include/asm-generic/pgtable.h | 110 + trunk/include/drm/drmP.h | 3 + trunk/include/drm/drm_crtc.h | 19 +- trunk/include/drm/drm_crtc_helper.h | 3 + trunk/include/drm/drm_dp_helper.h | 39 + trunk/include/drm/drm_hashtab.h | 14 + trunk/include/drm/exynos_drm.h | 26 + trunk/include/drm/intel-gtt.h | 7 +- trunk/include/drm/ttm/ttm_bo_api.h | 33 +- trunk/include/drm/ttm/ttm_bo_driver.h | 45 +- trunk/include/drm/ttm/ttm_execbuf_util.h | 3 - trunk/include/drm/ttm/ttm_memory.h | 2 - trunk/include/drm/ttm/ttm_object.h | 4 + trunk/include/linux/asn1.h | 2 + trunk/include/linux/backing-dev.h | 1 + trunk/include/linux/backlight.h | 10 + trunk/include/linux/bcma/bcma.h | 1 + trunk/include/linux/binfmts.h | 7 +- trunk/include/linux/blkdev.h | 28 +- trunk/include/linux/bsg-lib.h | 1 - trunk/include/linux/ceph/libceph.h | 2 - trunk/include/linux/ceph/osdmap.h | 1 + trunk/include/linux/ceph/rados.h | 2 + trunk/include/linux/compat.h | 65 + trunk/include/linux/compiler-gcc4.h | 12 + trunk/include/linux/compiler-intel.h | 7 + trunk/include/linux/compiler.h | 11 + trunk/include/linux/cred.h | 19 +- trunk/include/linux/dcache.h | 8 - trunk/include/linux/dma-attrs.h | 1 + trunk/include/linux/dma-buf.h | 99 - trunk/include/linux/dma-debug.h | 7 + trunk/include/linux/drbd.h | 81 +- trunk/include/linux/drbd_genl.h | 378 ++ trunk/include/linux/drbd_genl_api.h | 55 + trunk/include/linux/drbd_limits.h | 90 +- trunk/include/linux/drbd_nl.h | 163 - trunk/include/linux/drbd_tag_magic.h | 84 - trunk/include/linux/efi.h | 2 + trunk/include/linux/exportfs.h | 7 + trunk/include/linux/f2fs_fs.h | 413 ++ trunk/include/linux/fs.h | 24 +- trunk/include/linux/fscache-cache.h | 71 +- trunk/include/linux/fscache.h | 50 +- trunk/include/linux/fsnotify_backend.h | 31 +- trunk/include/linux/ftrace.h | 4 +- trunk/include/linux/genhd.h | 8 +- trunk/include/linux/genl_magic_func.h | 422 ++ trunk/include/linux/genl_magic_struct.h | 277 ++ trunk/include/linux/gfp.h | 5 + trunk/include/linux/huge_mm.h | 16 +- trunk/include/linux/hugetlb.h | 8 +- trunk/include/linux/hugetlb_cgroup.h | 5 +- trunk/include/linux/i2c-omap.h | 2 - trunk/include/linux/i2c/i2c-sh_mobile.h | 1 + trunk/include/linux/i2c/twl.h | 73 +- trunk/include/linux/idr.h | 11 + trunk/include/linux/ima.h | 6 + trunk/include/linux/init.h | 40 +- trunk/include/linux/input.h | 10 +- trunk/include/linux/input/bu21013.h | 10 +- trunk/include/linux/input/ti_am335x_tsc.h | 23 + trunk/include/linux/input/ti_tscadc.h | 17 - trunk/include/linux/ipc_namespace.h | 9 +- trunk/include/linux/jbd2.h | 9 +- trunk/include/linux/kernel.h | 39 +- trunk/include/linux/key.h | 1 + trunk/include/linux/kref.h | 21 + trunk/include/linux/loop.h | 3 + trunk/include/linux/lru_cache.h | 67 +- trunk/include/linux/memcontrol.h | 209 + trunk/include/linux/mempolicy.h | 8 + trunk/include/linux/mfd/arizona/registers.h | 1 + trunk/include/linux/mfd/as3711.h | 126 + trunk/include/linux/mfd/da9052/da9052.h | 10 + trunk/include/linux/mfd/da9055/core.h | 2 +- trunk/include/linux/mfd/da9055/pdata.h | 2 +- trunk/include/linux/mfd/da9055/reg.h | 2 +- trunk/include/linux/mfd/rc5t583.h | 3 +- trunk/include/linux/mfd/retu.h | 22 + trunk/include/linux/mfd/sta2x11-mfd.h | 198 +- trunk/include/linux/mfd/stmpe.h | 4 +- trunk/include/linux/mfd/ti_am335x_tscadc.h | 152 + trunk/include/linux/mfd/tps65090.h | 73 +- trunk/include/linux/mfd/tps6586x.h | 1 + trunk/include/linux/mfd/tps65910.h | 145 +- trunk/include/linux/mfd/tps80031.h | 637 +++ trunk/include/linux/mfd/twl6040.h | 10 +- trunk/include/linux/mfd/viperboard.h | 110 + trunk/include/linux/migrate.h | 46 +- trunk/include/linux/mm.h | 40 +- trunk/include/linux/mm_types.h | 38 +- trunk/include/linux/mmzone.h | 13 + trunk/include/linux/mnt_namespace.h | 3 +- trunk/include/linux/moduleparam.h | 6 +- trunk/include/linux/mtd/blktrans.h | 4 +- trunk/include/linux/mtd/doc2000.h | 22 +- trunk/include/linux/mtd/fsmc.h | 3 - trunk/include/linux/mtd/gpmi-nand.h | 68 - trunk/include/linux/mtd/map.h | 4 +- trunk/include/linux/mtd/mtd.h | 2 +- trunk/include/linux/mtd/nand.h | 11 +- trunk/include/linux/mtd/sh_flctl.h | 14 +- trunk/include/linux/namei.h | 20 +- trunk/include/linux/nfs_fs_sb.h | 47 - trunk/include/linux/nfs_xdr.h | 155 +- trunk/include/linux/nsproxy.h | 2 +- trunk/include/linux/of.h | 29 +- trunk/include/linux/of_platform.h | 1 + trunk/include/linux/percpu-rwsem.h | 91 +- trunk/include/linux/pid_namespace.h | 11 +- .../linux/platform_data/i2c-cbus-gpio.h | 27 + .../include/linux/platform_data/iommu-omap.h | 9 +- trunk/include/linux/platform_data/lp855x.h | 9 +- .../linux/platform_data/mtd-nomadik-nand.h | 16 - .../linux/platform_data/serial-omap.h} | 0 .../linux/platform_data/ti_am335x_adc.h | 14 + trunk/include/linux/platform_data/usb-omap.h | 3 + trunk/include/linux/proc_fs.h | 29 +- trunk/include/linux/ptrace.h | 6 + trunk/include/linux/pwm.h | 3 + trunk/include/linux/raid/pq.h | 4 + trunk/include/linux/random.h | 19 +- trunk/include/linux/res_counter.h | 12 +- trunk/include/linux/rmap.h | 33 +- trunk/include/linux/sched.h | 36 +- trunk/include/linux/security.h | 13 + trunk/include/linux/signal.h | 3 + trunk/include/linux/slab.h | 57 +- trunk/include/linux/slab_def.h | 9 +- trunk/include/linux/slub_def.h | 9 +- trunk/include/linux/string.h | 11 + trunk/include/linux/sunrpc/cache.h | 6 +- trunk/include/linux/sunrpc/sched.h | 1 - trunk/include/linux/sunrpc/svc.h | 6 +- trunk/include/linux/sunrpc/svcsock.h | 21 +- trunk/include/linux/swiotlb.h | 20 +- trunk/include/linux/syscalls.h | 20 +- trunk/include/linux/thread_info.h | 2 + trunk/include/linux/usb/usbnet.h | 3 + trunk/include/linux/user_namespace.h | 10 + trunk/include/linux/utsname.h | 7 +- trunk/include/linux/virtio.h | 25 +- trunk/include/linux/virtio_scsi.h | 28 +- trunk/include/linux/vm_event_item.h | 12 +- trunk/include/linux/vmstat.h | 8 + trunk/include/linux/wait.h | 164 + trunk/include/net/inet_connection_sock.h | 1 + trunk/include/net/ndisc.h | 7 + trunk/include/net/net_namespace.h | 2 + trunk/include/sound/soc-dai.h | 1 - trunk/include/sound/soc.h | 1 + trunk/include/trace/events/btrfs.h | 3 +- trunk/include/trace/events/ext4.h | 136 +- trunk/include/trace/events/gfpflags.h | 1 + trunk/include/trace/events/migrate.h | 51 + trunk/include/uapi/asm-generic/signal.h | 6 - trunk/include/uapi/asm-generic/unistd.h | 4 +- trunk/include/uapi/drm/drm.h | 1 + trunk/include/uapi/drm/exynos_drm.h | 203 +- trunk/include/uapi/drm/i915_drm.h | 6 + trunk/include/uapi/drm/radeon_drm.h | 6 + trunk/include/uapi/linux/if_bridge.h | 3 + trunk/include/uapi/linux/magic.h | 1 + trunk/include/uapi/linux/mempolicy.h | 15 +- trunk/include/uapi/linux/module.h | 8 + trunk/include/uapi/linux/ptrace.h | 5 +- trunk/include/uapi/linux/signal.h | 2 + trunk/include/uapi/linux/swab.h | 12 +- trunk/include/uapi/linux/virtio_ids.h | 1 + trunk/include/video/omap-panel-tfp410.h | 2 +- trunk/include/xen/interface/event_channel.h | 13 + trunk/init/Kconfig | 48 +- trunk/init/do_mounts.c | 61 +- trunk/init/main.c | 13 +- trunk/init/version.c | 2 + trunk/ipc/msgutil.c | 2 + trunk/ipc/namespace.c | 33 +- trunk/kernel/Makefile | 10 +- trunk/kernel/audit_tree.c | 10 +- trunk/kernel/audit_watch.c | 4 +- trunk/kernel/cgroup.c | 3 +- trunk/kernel/compat.c | 17 + trunk/kernel/cred.c | 154 +- trunk/kernel/events/core.c | 2 +- trunk/kernel/exit.c | 12 - trunk/kernel/fork.c | 78 +- trunk/kernel/irq/manage.c | 2 +- trunk/kernel/kcmp.c | 1 + trunk/kernel/kmod.c | 6 +- trunk/kernel/modsign_certificate.S | 19 + trunk/kernel/modsign_pubkey.c | 21 +- trunk/kernel/module.c | 444 +- trunk/kernel/nsproxy.c | 36 +- trunk/kernel/pid.c | 62 +- trunk/kernel/pid_namespace.c | 113 +- trunk/kernel/posix-cpu-timers.c | 3 + trunk/kernel/printk.c | 40 +- trunk/kernel/ptrace.c | 13 +- trunk/kernel/res_counter.c | 20 +- trunk/kernel/sched/core.c | 81 +- trunk/kernel/sched/fair.c | 230 + trunk/kernel/sched/features.h | 11 + trunk/kernel/sched/sched.h | 12 + trunk/kernel/seccomp.c | 13 +- trunk/kernel/signal.c | 76 +- trunk/kernel/sys_ni.c | 1 + trunk/kernel/sysctl.c | 45 +- trunk/kernel/sysctl_binary.c | 2 +- trunk/kernel/trace/ftrace.c | 4 +- trunk/kernel/trace/trace.c | 60 +- trunk/kernel/trace/trace_stack.c | 4 - trunk/kernel/trace/trace_uprobe.c | 8 +- trunk/kernel/user.c | 2 + trunk/kernel/user_namespace.c | 147 +- trunk/kernel/utsname.c | 34 +- trunk/kernel/watchdog.c | 24 +- trunk/lib/Kconfig | 3 + trunk/lib/Kconfig.debug | 10 +- trunk/lib/Makefile | 5 +- trunk/lib/asn1_decoder.c | 8 +- trunk/lib/atomic64.c | 17 +- trunk/lib/dma-debug.c | 66 +- trunk/lib/dynamic_debug.c | 9 +- trunk/lib/interval_tree_test_main.c | 7 +- trunk/lib/kstrtox.c | 64 + trunk/lib/lru_cache.c | 359 +- ....c => of-reconfig-notifier-error-inject.c} | 22 +- trunk/lib/percpu-rwsem.c | 165 + trunk/lib/raid6/Makefile | 9 +- trunk/lib/raid6/algos.c | 12 + trunk/lib/raid6/altivec.uc | 3 - trunk/lib/raid6/avx2.c | 251 ++ trunk/lib/raid6/mmx.c | 2 +- trunk/lib/raid6/recov_avx2.c | 323 ++ trunk/lib/raid6/recov_ssse3.c | 4 - trunk/lib/raid6/sse1.c | 2 +- trunk/lib/raid6/sse2.c | 8 +- trunk/lib/raid6/test/Makefile | 29 +- trunk/lib/raid6/x86.h | 14 +- trunk/lib/random32.c | 97 +- trunk/lib/rbtree_test.c | 8 +- trunk/lib/scatterlist.c | 3 +- trunk/lib/swiotlb.c | 269 +- trunk/lib/vsprintf.c | 109 +- trunk/mm/Kconfig | 13 +- trunk/mm/compaction.c | 31 +- trunk/mm/highmem.c | 1 + trunk/mm/huge_memory.c | 116 +- trunk/mm/hugetlb.c | 21 +- trunk/mm/hugetlb_cgroup.c | 19 +- trunk/mm/internal.h | 7 +- trunk/mm/kmemleak.c | 3 +- trunk/mm/ksm.c | 16 +- trunk/mm/memcontrol.c | 1377 +++++- trunk/mm/memory-failure.c | 7 +- trunk/mm/memory.c | 207 +- trunk/mm/memory_hotplug.c | 21 +- trunk/mm/mempolicy.c | 283 +- trunk/mm/migrate.c | 337 +- trunk/mm/mmap.c | 10 +- trunk/mm/mprotect.c | 149 +- trunk/mm/mremap.c | 2 +- trunk/mm/page-writeback.c | 25 +- trunk/mm/page_alloc.c | 59 +- trunk/mm/pgtable-generic.c | 9 +- trunk/mm/rmap.c | 66 +- trunk/mm/shmem.c | 20 +- trunk/mm/slab.c | 383 +- trunk/mm/slab.h | 190 +- trunk/mm/slab_common.c | 292 +- trunk/mm/slob.c | 48 +- trunk/mm/slub.c | 447 +- trunk/mm/truncate.c | 23 - trunk/mm/vmscan.c | 26 +- trunk/mm/vmstat.c | 16 +- trunk/net/9p/trans_virtio.c | 3 +- trunk/net/atm/atm_sysfs.c | 40 +- trunk/net/bridge/br_mdb.c | 22 +- trunk/net/bridge/br_multicast.c | 13 +- trunk/net/bridge/br_netlink.c | 1 - trunk/net/bridge/br_private.h | 5 +- trunk/net/ceph/ceph_common.c | 3 +- trunk/net/ceph/messenger.c | 107 +- trunk/net/ceph/osd_client.c | 59 +- trunk/net/ceph/osdmap.c | 47 +- trunk/net/core/net_namespace.c | 32 +- trunk/net/dccp/ipv4.c | 4 +- trunk/net/dccp/ipv6.c | 3 +- trunk/net/dns_resolver/dns_key.c | 15 +- trunk/net/ipv4/inet_connection_sock.c | 16 + trunk/net/ipv4/tcp_ipv4.c | 6 +- trunk/net/ipv6/Makefile | 2 +- trunk/net/ipv6/addrconf.c | 3 +- trunk/net/ipv6/ndisc.c | 17 + trunk/net/ipv6/tcp_ipv6.c | 3 +- trunk/net/mac802154/ieee802154_dev.c | 4 +- trunk/net/netlink/af_netlink.c | 5 +- trunk/net/sctp/Kconfig | 27 +- trunk/net/sctp/probe.c | 3 +- trunk/net/sctp/protocol.c | 4 +- trunk/net/sunrpc/auth_gss/auth_gss.c | 17 +- trunk/net/sunrpc/backchannel_rqst.c | 9 +- trunk/net/sunrpc/bc_svc.c | 2 +- trunk/net/sunrpc/cache.c | 4 +- trunk/net/sunrpc/clnt.c | 48 +- trunk/net/sunrpc/rpc_pipe.c | 9 +- trunk/net/sunrpc/rpcb_clnt.c | 6 +- trunk/net/sunrpc/sched.c | 71 +- trunk/net/sunrpc/svc.c | 20 +- trunk/net/sunrpc/svc_xprt.c | 11 +- trunk/net/sunrpc/svcsock.c | 104 +- trunk/net/sunrpc/xdr.c | 5 +- trunk/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 10 +- trunk/net/sunrpc/xprtrdma/svc_rdma_sendto.c | 4 +- trunk/net/sunrpc/xprtsock.c | 19 +- trunk/scripts/Makefile.modsign | 32 + trunk/scripts/checkpatch.pl | 150 +- .../scripts/coccinelle/api/d_find_alias.cocci | 80 + trunk/scripts/coccinelle/misc/warn.cocci | 109 + trunk/scripts/config | 1 - trunk/scripts/pnmtologo.c | 7 + trunk/scripts/tags.sh | 57 +- trunk/security/capability.c | 6 + trunk/security/commoncap.c | 25 +- trunk/security/integrity/ima/ima.h | 2 +- trunk/security/integrity/ima/ima_api.c | 4 +- trunk/security/integrity/ima/ima_main.c | 21 + trunk/security/integrity/ima/ima_policy.c | 3 + trunk/security/keys/key.c | 6 +- trunk/security/keys/keyctl.c | 15 +- trunk/security/keys/keyring.c | 10 +- trunk/security/keys/process_keys.c | 94 +- trunk/security/keys/request_key.c | 21 +- trunk/security/security.c | 10 + trunk/security/selinux/nlmsgtab.c | 2 + trunk/security/smack/Kconfig | 6 +- trunk/security/smack/smackfs.c | 17 + trunk/security/yama/yama_lsm.c | 100 +- trunk/sound/Kconfig | 3 - trunk/sound/pci/hda/hda_intel.c | 4 +- trunk/sound/pci/hda/patch_hdmi.c | 46 +- trunk/sound/pci/hda/patch_realtek.c | 5 +- trunk/sound/pci/hda/patch_sigmatel.c | 2 +- trunk/sound/soc/codecs/cs42l73.c | 116 +- trunk/sound/soc/codecs/sigmadsp.c | 2 +- trunk/sound/soc/codecs/tpa6130a2.c | 23 +- trunk/sound/soc/soc-compress.c | 2 +- trunk/sound/soc/soc-core.c | 10 +- trunk/sound/soc/soc-pcm.c | 12 +- trunk/sound/sound_core.c | 3 +- trunk/sound/usb/midi.c | 4 + trunk/sound/usb/quirks-table.h | 123 + trunk/sound/usb/quirks.c | 91 + trunk/sound/usb/usbaudio.h | 1 + trunk/tools/lguest/lguest.c | 84 +- trunk/tools/power/x86/turbostat/Makefile | 21 +- trunk/tools/power/x86/turbostat/turbostat.8 | 103 +- trunk/tools/power/x86/turbostat/turbostat.c | 677 ++- .../power/x86/x86_energy_perf_policy/Makefile | 6 +- .../x86_energy_perf_policy.c | 2 +- .../testing/selftests/breakpoints/Makefile | 2 +- .../testing/selftests/cpu-hotplug/Makefile | 2 +- trunk/tools/testing/selftests/kcmp/Makefile | 6 +- .../tools/testing/selftests/kcmp/kcmp_test.c | 6 +- .../testing/selftests/memory-hotplug/Makefile | 2 +- trunk/tools/testing/selftests/mqueue/Makefile | 4 +- trunk/tools/testing/selftests/vm/Makefile | 2 +- trunk/tools/virtio/virtio_test.c | 4 +- 2382 files changed, 121035 insertions(+), 49592 deletions(-) delete mode 100644 trunk/Documentation/ABI/testing/sysfs-devices-node create mode 100644 trunk/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt create mode 100644 trunk/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/pwm-beeper.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/stmpe-keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/tca8418_keypad.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/touchscreen/mms114.txt create mode 100644 trunk/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt create mode 100644 trunk/Documentation/devicetree/bindings/mfd/stmpe.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/denali-nand.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/flctl-nand.txt create mode 100644 trunk/Documentation/devicetree/bindings/mtd/m25p80.txt create mode 100644 trunk/Documentation/devicetree/bindings/powerpc/fsl/raideng.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/spear-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/ti,twl-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/ti,twl-pwmled.txt create mode 100644 trunk/Documentation/devicetree/bindings/pwm/vt8500-pwm.txt create mode 100644 trunk/Documentation/devicetree/bindings/rtc/imxdi-rtc.txt create mode 100644 trunk/Documentation/devicetree/bindings/rtc/rtc-omap.txt create mode 100644 trunk/Documentation/devicetree/bindings/spi/spi_atmel.txt create mode 100644 trunk/Documentation/filesystems/f2fs.txt create mode 100644 trunk/Documentation/xtensa/atomctl.txt create mode 100644 trunk/arch/alpha/include/uapi/asm/a.out.h rename trunk/arch/alpha/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/byteorder.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/compiler.h create mode 100644 trunk/arch/alpha/include/uapi/asm/console.h rename trunk/arch/alpha/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/fcntl.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/fpu.h rename trunk/arch/alpha/include/{ => uapi}/asm/gentrap.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/kvm_para.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/msgbuf.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/pal.h create mode 100644 trunk/arch/alpha/include/uapi/asm/param.h rename trunk/arch/alpha/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/ptrace.h rename trunk/arch/alpha/include/{ => uapi}/asm/reg.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/regdef.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/signal.h create mode 100644 trunk/arch/alpha/include/uapi/asm/socket.h rename trunk/arch/alpha/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/sysinfo.h (100%) rename trunk/arch/alpha/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/alpha/include/uapi/asm/termios.h create mode 100644 trunk/arch/alpha/include/uapi/asm/types.h create mode 100644 trunk/arch/alpha/include/uapi/asm/unistd.h rename trunk/arch/arm/boot/dts/{sun4i-cubieboard.dts => sun4i-a10-cubieboard.dts} (87%) rename trunk/arch/arm/boot/dts/{sun4i.dtsi => sun4i-a10.dtsi} (100%) rename trunk/arch/arm/boot/dts/{sun5i-olinuxino.dts => sun5i-a13-olinuxino.dts} (86%) rename trunk/arch/arm/boot/dts/{sun5i.dtsi => sun5i-a13.dtsi} (100%) rename trunk/arch/arm/{plat-mxc => mach-imx}/devices/platform-mx2-emma.c (94%) delete mode 100644 trunk/arch/arm/mach-nomadik/include/mach/fsmc.h delete mode 100644 trunk/arch/arm/plat-omap/debug-devices.c delete mode 100644 trunk/arch/arm/plat-omap/include/plat/debug-devices.h create mode 100644 trunk/arch/blackfin/include/uapi/asm/bfin_sport.h rename trunk/arch/blackfin/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/cachectl.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/fcntl.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/fixed_code.h rename trunk/arch/blackfin/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/ptrace.h rename trunk/arch/blackfin/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/siginfo.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/signal.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/blackfin/include/{ => uapi}/asm/swab.h (100%) create mode 100644 trunk/arch/blackfin/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/c6x/include/asm/mmu.h rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/sv_addr.agh (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/sv_addr_ag.h (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/svinto.h (100%) rename trunk/arch/cris/include/{ => uapi}/arch-v10/arch/user.h (100%) create mode 100644 trunk/arch/cris/include/uapi/arch-v32/arch/cryptocop.h rename trunk/arch/cris/include/{ => uapi}/arch-v32/arch/user.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ethernet.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/etraxgpio.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/ptrace.h rename trunk/arch/cris/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/rs485.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/signal.h rename trunk/arch/cris/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/statfs.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/swab.h rename trunk/arch/cris/include/{ => uapi}/asm/sync_serial.h (100%) rename trunk/arch/cris/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/cris/include/uapi/asm/termios.h create mode 100644 trunk/arch/cris/include/uapi/asm/types.h create mode 100644 trunk/arch/cris/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/h8300/include/asm/mmu.h rename trunk/arch/h8300/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/{blackfin/include => h8300/include/uapi}/asm/kvm_para.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/msgbuf.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/param.h rename trunk/arch/h8300/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/ptrace.h rename trunk/arch/h8300/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sembuf.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/setup.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/signal.h rename trunk/arch/h8300/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/h8300/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/h8300/include/uapi/asm/termios.h create mode 100644 trunk/arch/h8300/include/uapi/asm/types.h create mode 100644 trunk/arch/h8300/include/uapi/asm/unistd.h rename trunk/arch/m32r/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/ptrace.h rename trunk/arch/m32r/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/setup.h rename trunk/arch/m32r/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/siginfo.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/signal.h rename trunk/arch/m32r/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/m32r/include/{ => uapi}/asm/termbits.h (100%) create mode 100644 trunk/arch/m32r/include/uapi/asm/termios.h create mode 100644 trunk/arch/m32r/include/uapi/asm/types.h create mode 100644 trunk/arch/m32r/include/uapi/asm/unistd.h delete mode 100644 trunk/arch/m68k/include/asm/m5249sim.h create mode 100644 trunk/arch/m68k/platform/68000/Makefile rename trunk/arch/m68k/platform/{68VZ328/bootlogo.h => 68000/bootlogo-vz.h} (100%) rename trunk/arch/m68k/platform/{68328 => 68000}/bootlogo.h (100%) rename trunk/arch/m68k/platform/{68328 => 68000}/entry.S (100%) create mode 100644 trunk/arch/m68k/platform/68000/head.S rename trunk/arch/m68k/platform/{68328 => 68000}/ints.c (98%) rename trunk/arch/m68k/platform/{68328/config.c => 68000/m68328.c} (97%) rename trunk/arch/m68k/platform/{68EZ328/config.c => 68000/m68EZ328.c} (97%) rename trunk/arch/m68k/platform/{68VZ328/config.c => 68000/m68VZ328.c} (98%) rename trunk/arch/m68k/platform/{68328 => 68000}/romvec.S (94%) rename trunk/arch/m68k/platform/{68328 => 68000}/timers.c (98%) delete mode 100644 trunk/arch/m68k/platform/68328/Makefile delete mode 100644 trunk/arch/m68k/platform/68328/head-de2.S delete mode 100644 trunk/arch/m68k/platform/68328/head-pilot.S delete mode 100644 trunk/arch/m68k/platform/68328/head-ram.S delete mode 100644 trunk/arch/m68k/platform/68328/head-rom.S delete mode 100644 trunk/arch/m68k/platform/68EZ328/Makefile delete mode 100644 trunk/arch/m68k/platform/68VZ328/Makefile delete mode 100644 trunk/arch/openrisc/include/uapi/asm/kvm_para.h create mode 100644 trunk/arch/powerpc/boot/dts/a3m071.dts create mode 100644 trunk/arch/powerpc/boot/dts/fsl/qoriq-raid1.0-0.dtsi delete mode 100644 trunk/arch/powerpc/include/asm/pSeries_reconfig.h create mode 100644 trunk/arch/powerpc/include/asm/setup.h rename trunk/arch/powerpc/kernel/{cpu_setup_power7.S => cpu_setup_power.S} (80%) delete mode 100644 trunk/arch/powerpc/xmon/start.c create mode 100644 trunk/arch/s390/include/asm/pci_debug.h create mode 100644 trunk/arch/s390/pci/pci_debug.c delete mode 100644 trunk/arch/score/include/asm/kvm_para.h rename trunk/arch/score/include/{ => uapi}/asm/auxvec.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/bitsperlong.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/byteorder.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/errno.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/fcntl.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ioctl.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ioctls.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/ipcbuf.h (100%) rename trunk/arch/{h8300/include => score/include/uapi}/asm/kvm_para.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/mman.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/msgbuf.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/param.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/poll.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/posix_types.h (100%) create mode 100644 trunk/arch/score/include/uapi/asm/ptrace.h rename trunk/arch/score/include/{ => uapi}/asm/resource.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sembuf.h (100%) create mode 100644 trunk/arch/score/include/uapi/asm/setup.h rename trunk/arch/score/include/{ => uapi}/asm/shmbuf.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sigcontext.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/siginfo.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/signal.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/socket.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/sockios.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/stat.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/statfs.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/swab.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/termbits.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/termios.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/types.h (100%) rename trunk/arch/score/include/{ => uapi}/asm/unistd.h (90%) create mode 100644 trunk/arch/xtensa/boot/boot-uboot/Makefile create mode 100644 trunk/arch/xtensa/boot/dts/lx60.dts create mode 100644 trunk/arch/xtensa/boot/dts/ml605.dts create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga-flash-16m.dtsi create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga-flash-4m.dtsi create mode 100644 trunk/arch/xtensa/boot/dts/xtfpga.dtsi create mode 100644 trunk/arch/xtensa/include/asm/initialize_mmu.h delete mode 100644 trunk/arch/xtensa/include/asm/nommu.h create mode 100644 trunk/arch/xtensa/include/asm/prom.h create mode 100644 trunk/arch/xtensa/include/asm/traps.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/Makefile create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/hardware.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/lcd.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/include/platform/serial.h create mode 100644 trunk/arch/xtensa/platforms/xtfpga/lcd.c create mode 100644 trunk/arch/xtensa/platforms/xtfpga/setup.c create mode 100644 trunk/drivers/block/drbd/drbd_interval.c create mode 100644 trunk/drivers/block/drbd/drbd_interval.h create mode 100644 trunk/drivers/block/drbd/drbd_nla.c create mode 100644 trunk/drivers/block/drbd/drbd_nla.h create mode 100644 trunk/drivers/block/drbd/drbd_state.c create mode 100644 trunk/drivers/block/drbd/drbd_state.h create mode 100644 trunk/drivers/gpio/gpio-viperboard.c rename trunk/drivers/gpu/drm/{drm_dp_i2c_helper.c => drm_dp_helper.c} (58%) create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_fimc.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_fimc.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_gsc.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_iommu.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_iommu.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_ipp.h create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_rotator.c create mode 100644 trunk/drivers/gpu/drm/exynos/exynos_drm_rotator.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-fimc.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-gsc.h create mode 100644 trunk/drivers/gpu/drm/exynos/regs-rotator.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/core/falcon.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/bsp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/bsp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdanva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdanvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminv84.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/hdminvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv50.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv84.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nv94.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nva0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nva3.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornv50.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/ppp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/vp/nvc0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/engine/vp/nve0.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/include/core/falcon.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/include/subdev/bios/disp.h create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/bios/disp.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv35.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv36.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv41.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv44.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv46.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv47.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv49.c create mode 100644 trunk/drivers/gpu/drm/nouveau/core/subdev/fb/nv4e.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nouveau_hdmi.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_crtc.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_cursor.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_dac.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_evo.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_evo.h delete mode 100644 trunk/drivers/gpu/drm/nouveau/nv50_sor.c delete mode 100644 trunk/drivers/gpu/drm/nouveau/nvd0_display.c create mode 100644 trunk/drivers/gpu/drm/tegra/Kconfig create mode 100644 trunk/drivers/gpu/drm/tegra/Makefile create mode 100644 trunk/drivers/gpu/drm/tegra/dc.c create mode 100644 trunk/drivers/gpu/drm/tegra/dc.h create mode 100644 trunk/drivers/gpu/drm/tegra/drm.c create mode 100644 trunk/drivers/gpu/drm/tegra/drm.h create mode 100644 trunk/drivers/gpu/drm/tegra/fb.c create mode 100644 trunk/drivers/gpu/drm/tegra/hdmi.c create mode 100644 trunk/drivers/gpu/drm/tegra/hdmi.h create mode 100644 trunk/drivers/gpu/drm/tegra/host1x.c create mode 100644 trunk/drivers/gpu/drm/tegra/output.c create mode 100644 trunk/drivers/gpu/drm/tegra/rgb.c create mode 100644 trunk/drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_context.c create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h create mode 100644 trunk/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c create mode 100644 trunk/drivers/i2c/busses/i2c-cbus-gpio.c create mode 100644 trunk/drivers/i2c/busses/i2c-viperboard.c create mode 100644 trunk/drivers/iio/adc/ti_am335x_adc.c create mode 100644 trunk/drivers/iio/adc/viperboard_adc.c create mode 100644 trunk/drivers/input/misc/da9055_onkey.c create mode 100644 trunk/drivers/input/misc/retu-pwrbutton.c create mode 100644 trunk/drivers/input/serio/arc_ps2.c delete mode 100644 trunk/drivers/input/touchscreen/h3600_ts_input.c create mode 100644 trunk/drivers/input/touchscreen/ti_am335x_tsc.c delete mode 100644 trunk/drivers/input/touchscreen/ti_tscadc.c create mode 100644 trunk/drivers/mfd/as3711.c create mode 100644 trunk/drivers/mfd/da9052-irq.c create mode 100644 trunk/drivers/mfd/retu-mfd.c create mode 100644 trunk/drivers/mfd/ti_am335x_tscadc.c delete mode 100644 trunk/drivers/mfd/tps65910-irq.c create mode 100644 trunk/drivers/mfd/tps80031.c delete mode 100644 trunk/drivers/mfd/twl6040-irq.c rename trunk/drivers/mfd/{twl6040-core.c => twl6040.c} (84%) create mode 100644 trunk/drivers/mfd/viperboard.c delete mode 100644 trunk/drivers/mtd/maps/fortunet.c create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/Makefile create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/main.c create mode 100644 trunk/drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c create mode 100644 trunk/drivers/mtd/nand/denali_dt.c create mode 100644 trunk/drivers/mtd/nand/denali_pci.c delete mode 100644 trunk/drivers/mtd/nand/nomadik_nand.c create mode 100644 trunk/drivers/pwm/pwm-spear.c create mode 100644 trunk/drivers/pwm/pwm-tipwmss.c create mode 100644 trunk/drivers/pwm/pwm-tipwmss.h create mode 100644 trunk/drivers/pwm/pwm-twl-led.c create mode 100644 trunk/drivers/pwm/pwm-twl.c delete mode 100644 trunk/drivers/pwm/pwm-twl6030.c create mode 100644 trunk/drivers/rtc/rtc-da9055.c create mode 100644 trunk/drivers/rtc/rtc-pcf8523.c create mode 100644 trunk/fs/btrfs/dev-replace.c create mode 100644 trunk/fs/btrfs/dev-replace.h create mode 100644 trunk/fs/btrfs/math.h create mode 100644 trunk/fs/ext4/extents_status.c create mode 100644 trunk/fs/ext4/extents_status.h create mode 100644 trunk/fs/ext4/inline.c create mode 100644 trunk/fs/f2fs/Kconfig create mode 100644 trunk/fs/f2fs/Makefile create mode 100644 trunk/fs/f2fs/acl.c create mode 100644 trunk/fs/f2fs/acl.h create mode 100644 trunk/fs/f2fs/checkpoint.c create mode 100644 trunk/fs/f2fs/data.c create mode 100644 trunk/fs/f2fs/debug.c create mode 100644 trunk/fs/f2fs/dir.c create mode 100644 trunk/fs/f2fs/f2fs.h create mode 100644 trunk/fs/f2fs/file.c create mode 100644 trunk/fs/f2fs/gc.c create mode 100644 trunk/fs/f2fs/gc.h create mode 100644 trunk/fs/f2fs/hash.c create mode 100644 trunk/fs/f2fs/inode.c create mode 100644 trunk/fs/f2fs/namei.c create mode 100644 trunk/fs/f2fs/node.c create mode 100644 trunk/fs/f2fs/node.h create mode 100644 trunk/fs/f2fs/recovery.c create mode 100644 trunk/fs/f2fs/segment.c create mode 100644 trunk/fs/f2fs/segment.h create mode 100644 trunk/fs/f2fs/super.c create mode 100644 trunk/fs/f2fs/xattr.c create mode 100644 trunk/fs/f2fs/xattr.h create mode 100644 trunk/fs/nfs/nfs4session.c create mode 100644 trunk/fs/nfs/nfs4session.h delete mode 100644 trunk/fs/nfsd/fault_inject.h create mode 100644 trunk/fs/notify/fdinfo.c create mode 100644 trunk/fs/notify/fdinfo.h create mode 100644 trunk/fs/proc/self.c create mode 100644 trunk/include/linux/drbd_genl.h create mode 100644 trunk/include/linux/drbd_genl_api.h delete mode 100644 trunk/include/linux/drbd_nl.h delete mode 100644 trunk/include/linux/drbd_tag_magic.h create mode 100644 trunk/include/linux/f2fs_fs.h create mode 100644 trunk/include/linux/genl_magic_func.h create mode 100644 trunk/include/linux/genl_magic_struct.h create mode 100644 trunk/include/linux/input/ti_am335x_tsc.h delete mode 100644 trunk/include/linux/input/ti_tscadc.h create mode 100644 trunk/include/linux/mfd/as3711.h create mode 100644 trunk/include/linux/mfd/retu.h create mode 100644 trunk/include/linux/mfd/ti_am335x_tscadc.h create mode 100644 trunk/include/linux/mfd/tps80031.h create mode 100644 trunk/include/linux/mfd/viperboard.h delete mode 100644 trunk/include/linux/mtd/gpmi-nand.h create mode 100644 trunk/include/linux/platform_data/i2c-cbus-gpio.h delete mode 100644 trunk/include/linux/platform_data/mtd-nomadik-nand.h rename trunk/{arch/arm/plat-omap/include/plat/omap-serial.h => include/linux/platform_data/serial-omap.h} (100%) create mode 100644 trunk/include/linux/platform_data/ti_am335x_adc.h create mode 100644 trunk/include/trace/events/migrate.h create mode 100644 trunk/include/uapi/linux/module.h create mode 100644 trunk/kernel/modsign_certificate.S rename trunk/lib/{pSeries-reconfig-notifier-error-inject.c => of-reconfig-notifier-error-inject.c} (51%) create mode 100644 trunk/lib/percpu-rwsem.c create mode 100644 trunk/lib/raid6/avx2.c create mode 100644 trunk/lib/raid6/recov_avx2.c create mode 100644 trunk/scripts/Makefile.modsign create mode 100644 trunk/scripts/coccinelle/api/d_find_alias.cocci create mode 100644 trunk/scripts/coccinelle/misc/warn.cocci diff --git a/[refs] b/[refs] index 872293d49c5a..c1cb014295af 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d72623b665d84b1e07fe43854e83387fce8dd134 +refs/heads/master: 184e2516614f7055d4c3a2e63fd8a3eb95fff6d6 diff --git a/trunk/.gitignore b/trunk/.gitignore index 92bd0e45dfa1..3b8b9b33be38 100644 --- a/trunk/.gitignore +++ b/trunk/.gitignore @@ -60,7 +60,6 @@ modules.builtin # Generated include files # include/config -include/linux/version.h include/generated arch/*/include/generated diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX index ceb1ff735469..8afe64fb2009 100644 --- a/trunk/Documentation/00-INDEX +++ b/trunk/Documentation/00-INDEX @@ -136,8 +136,6 @@ fault-injection/ - dir with docs about the fault injection capabilities infrastructure. fb/ - directory with info on the frame buffer graphics abstraction layer. -feature-removal-schedule.txt - - list of files and features that are going to be removed. filesystems/ - info on the vfs and the various filesystems that Linux supports. firmware_class/ diff --git a/trunk/Documentation/ABI/README b/trunk/Documentation/ABI/README index 9feaf16f1617..10069828568b 100644 --- a/trunk/Documentation/ABI/README +++ b/trunk/Documentation/ABI/README @@ -36,9 +36,6 @@ The different levels of stability are: the kernel, but are marked to be removed at some later point in time. The description of the interface will document the reason why it is obsolete and when it can be expected to be removed. - The file Documentation/feature-removal-schedule.txt may describe - some of these interfaces, giving a schedule for when they will - be removed. removed/ This directory contains a list of the old interfaces that have diff --git a/trunk/Documentation/ABI/stable/sysfs-devices-node b/trunk/Documentation/ABI/stable/sysfs-devices-node index 49b82cad7003..ce259c13c36a 100644 --- a/trunk/Documentation/ABI/stable/sysfs-devices-node +++ b/trunk/Documentation/ABI/stable/sysfs-devices-node @@ -1,7 +1,101 @@ +What: /sys/devices/system/node/possible +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that could be possibly become online at some point. + +What: /sys/devices/system/node/online +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that are online. + +What: /sys/devices/system/node/has_normal_memory +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have regular memory. + +What: /sys/devices/system/node/has_cpu +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have one or more CPUs. + +What: /sys/devices/system/node/has_high_memory +Date: October 2002 +Contact: Linux Memory Management list +Description: + Nodes that have regular or high memory. + Depends on CONFIG_HIGHMEM. + What: /sys/devices/system/node/nodeX Date: October 2002 Contact: Linux Memory Management list Description: When CONFIG_NUMA is enabled, this is a directory containing information on node X such as what CPUs are local to the - node. + node. Each file is detailed next. + +What: /sys/devices/system/node/nodeX/cpumap +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's cpumap. + +What: /sys/devices/system/node/nodeX/cpulist +Date: October 2002 +Contact: Linux Memory Management list +Description: + The CPUs associated to the node. + +What: /sys/devices/system/node/nodeX/meminfo +Date: October 2002 +Contact: Linux Memory Management list +Description: + Provides information about the node's distribution and memory + utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.txt + +What: /sys/devices/system/node/nodeX/numastat +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's hit/miss statistics, in units of pages. + See Documentation/numastat.txt + +What: /sys/devices/system/node/nodeX/distance +Date: October 2002 +Contact: Linux Memory Management list +Description: + Distance between the node and all the other nodes + in the system. + +What: /sys/devices/system/node/nodeX/vmstat +Date: October 2002 +Contact: Linux Memory Management list +Description: + The node's zoned virtual memory statistics. + This is a superset of numastat. + +What: /sys/devices/system/node/nodeX/compact +Date: February 2010 +Contact: Mel Gorman +Description: + When this file is written to, all memory within that node + will be compacted. When it completes, memory will be freed + into blocks which have as many contiguous pages as possible + +What: /sys/devices/system/node/nodeX/scan_unevictable_pages +Date: October 2008 +Contact: Lee Schermerhorn +Description: + When set, it triggers scanning the node's unevictable lists + and move any pages that have become evictable onto the respective + zone's inactive list. See mm/vmscan.c + +What: /sys/devices/system/node/nodeX/hugepages/hugepages-/ +Date: December 2009 +Contact: Lee Schermerhorn +Description: + The node's huge page size control/query attributes. + See Documentation/vm/hugetlbpage.txt \ No newline at end of file diff --git a/trunk/Documentation/ABI/testing/ima_policy b/trunk/Documentation/ABI/testing/ima_policy index 986946613542..ec0a38ef3145 100644 --- a/trunk/Documentation/ABI/testing/ima_policy +++ b/trunk/Documentation/ABI/testing/ima_policy @@ -23,7 +23,7 @@ Description: lsm: [[subj_user=] [subj_role=] [subj_type=] [obj_user=] [obj_role=] [obj_type=]] - base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK] + base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK][MODULE_CHECK] mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] fsmagic:= hex value uid:= decimal value @@ -53,6 +53,7 @@ Description: measure func=BPRM_CHECK measure func=FILE_MMAP mask=MAY_EXEC measure func=FILE_CHECK mask=MAY_READ uid=0 + measure func=MODULE_CHECK uid=0 appraise fowner=0 The default policy measures all executables in bprm_check, diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-rbd b/trunk/Documentation/ABI/testing/sysfs-bus-rbd index 1cf2adf46b11..cd9213ccf3dc 100644 --- a/trunk/Documentation/ABI/testing/sysfs-bus-rbd +++ b/trunk/Documentation/ABI/testing/sysfs-bus-rbd @@ -70,6 +70,10 @@ snap_* A directory per each snapshot +parent + + Information identifying the pool, image, and snapshot id for + the parent image in a layered rbd image (format 2 only). Entries under /sys/bus/rbd/devices//snap_ ------------------------------------------------------------- diff --git a/trunk/Documentation/ABI/testing/sysfs-devices-node b/trunk/Documentation/ABI/testing/sysfs-devices-node deleted file mode 100644 index 453a210c3ceb..000000000000 --- a/trunk/Documentation/ABI/testing/sysfs-devices-node +++ /dev/null @@ -1,7 +0,0 @@ -What: /sys/devices/system/node/nodeX/compact -Date: February 2010 -Contact: Mel Gorman -Description: - When this file is written to, all memory within that node - will be compacted. When it completes, memory will be freed - into blocks which have as many contiguous pages as possible diff --git a/trunk/Documentation/DMA-API-HOWTO.txt b/trunk/Documentation/DMA-API-HOWTO.txt index a0b6250add79..4a4fb295ceef 100644 --- a/trunk/Documentation/DMA-API-HOWTO.txt +++ b/trunk/Documentation/DMA-API-HOWTO.txt @@ -468,11 +468,46 @@ To map a single region, you do: size_t size = buffer->len; dma_handle = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } and to unmap it: dma_unmap_single(dev, dma_handle, size, direction); +You should call dma_mapping_error() as dma_map_single() could fail and return +error. Not all dma implementations support dma_mapping_error() interface. +However, it is a good practice to call dma_mapping_error() interface, which +will invoke the generic mapping error check interface. Doing so will ensure +that the mapping code will work correctly on all dma implementations without +any dependency on the specifics of the underlying implementation. Using the +returned address without checking for errors could result in failures ranging +from panics to silent data corruption. Couple of example of incorrect ways to +check for errors that make assumptions about the underlying dma implementation +are as follows and these are applicable to dma_map_page() as well. + +Incorrect example 1: + dma_addr_t dma_handle; + + dma_handle = dma_map_single(dev, addr, size, direction); + if ((dma_handle & 0xffff != 0) || (dma_handle >= 0x1000000)) { + goto map_error; + } + +Incorrect example 2: + dma_addr_t dma_handle; + + dma_handle = dma_map_single(dev, addr, size, direction); + if (dma_handle == DMA_ERROR_CODE) { + goto map_error; + } + You should call dma_unmap_single when the DMA activity is finished, e.g. from the interrupt which told you that the DMA transfer is done. @@ -489,6 +524,14 @@ Specifically: size_t size = buffer->len; dma_handle = dma_map_page(dev, page, offset, size, direction); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } ... @@ -496,6 +539,12 @@ Specifically: Here, "offset" means byte offset within the given page. +You should call dma_mapping_error() as dma_map_page() could fail and return +error as outlined under the dma_map_single() discussion. + +You should call dma_unmap_page when the DMA activity is finished, e.g. +from the interrupt which told you that the DMA transfer is done. + With scatterlists, you map a region gathered from several regions by: int i, count = dma_map_sg(dev, sglist, nents, direction); @@ -578,6 +627,14 @@ to use the dma_sync_*() interfaces. dma_addr_t mapping; mapping = dma_map_single(cp->dev, buffer, len, DMA_FROM_DEVICE); + if (dma_mapping_error(dma_handle)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } cp->rx_buf = buffer; cp->rx_len = len; @@ -658,6 +715,75 @@ failure can be determined by: * delay and try again later or * reset driver. */ + goto map_error_handling; + } + +- unmap pages that are already mapped, when mapping error occurs in the middle + of a multiple page mapping attempt. These example are applicable to + dma_map_page() as well. + +Example 1: + dma_addr_t dma_handle1; + dma_addr_t dma_handle2; + + dma_handle1 = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_handle1)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling1; + } + dma_handle2 = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_handle2)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling2; + } + + ... + + map_error_handling2: + dma_unmap_single(dma_handle1); + map_error_handling1: + +Example 2: (if buffers are allocated a loop, unmap all mapped buffers when + mapping error is detected in the middle) + + dma_addr_t dma_addr; + dma_addr_t array[DMA_BUFFERS]; + int save_index = 0; + + for (i = 0; i < DMA_BUFFERS; i++) { + + ... + + dma_addr = dma_map_single(dev, addr, size, direction); + if (dma_mapping_error(dev, dma_addr)) { + /* + * reduce current DMA mapping usage, + * delay and try again later or + * reset driver. + */ + goto map_error_handling; + } + array[i].dma_addr = dma_addr; + save_index++; + } + + ... + + map_error_handling: + + for (i = 0; i < save_index; i++) { + + ... + + dma_unmap_single(array[i].dma_addr); } Networking drivers must call dev_kfree_skb to free the socket buffer diff --git a/trunk/Documentation/DMA-API.txt b/trunk/Documentation/DMA-API.txt index 66bd97a95f10..78a6c569d204 100644 --- a/trunk/Documentation/DMA-API.txt +++ b/trunk/Documentation/DMA-API.txt @@ -678,3 +678,15 @@ out of dma_debug_entries. These entries are preallocated at boot. The number of preallocated entries is defined per architecture. If it is too low for you boot with 'dma_debug_entries=' to overwrite the architectural default. + +void debug_dmap_mapping_error(struct device *dev, dma_addr_t dma_addr); + +dma-debug interface debug_dma_mapping_error() to debug drivers that fail +to check dma mapping errors on addresses returned by dma_map_single() and +dma_map_page() interfaces. This interface clears a flag set by +debug_dma_map_page() to indicate that dma_mapping_error() has been called by +the driver. When driver does unmap, debug_dma_unmap() checks the flag and if +this flag is still set, prints warning message that includes call trace that +leads up to the unmap. This interface can be called from dma_mapping_error() +routines to enable dma mapping error check debugging. + diff --git a/trunk/Documentation/DMA-attributes.txt b/trunk/Documentation/DMA-attributes.txt index f50309081ac7..e59480db9ee0 100644 --- a/trunk/Documentation/DMA-attributes.txt +++ b/trunk/Documentation/DMA-attributes.txt @@ -91,3 +91,12 @@ transferred to 'device' domain. This attribute can be also used for dma_unmap_{single,page,sg} functions family to force buffer to stay in device domain after releasing a mapping for it. Use this attribute with care! + +DMA_ATTR_FORCE_CONTIGUOUS +------------------------- + +By default DMA-mapping subsystem is allowed to assemble the buffer +allocated by dma_alloc_attrs() function from individual pages if it can +be mapped as contiguous chunk into device dma address space. By +specifing this attribute the allocated buffer is forced to be contiguous +also in physical memory. diff --git a/trunk/Documentation/DocBook/drm.tmpl b/trunk/Documentation/DocBook/drm.tmpl index b0300529ab13..4ee2304f82f9 100644 --- a/trunk/Documentation/DocBook/drm.tmpl +++ b/trunk/Documentation/DocBook/drm.tmpl @@ -1141,23 +1141,13 @@ int max_width, max_height; the page_flip operation will be called with a non-NULL event argument pointing to a drm_pending_vblank_event instance. Upon page - flip completion the driver must fill the - event::event - sequence, tv_sec - and tv_usec fields with the associated - vertical blanking count and timestamp, add the event to the - drm_file list of events to be signaled, and wake - up any waiting process. This can be performed with + flip completion the driver must call drm_send_vblank_event + to fill in the event and send to wake up any waiting processes. + This can be performed with event.sequence = drm_vblank_count_and_time(..., &now); - event->event.tv_sec = now.tv_sec; - event->event.tv_usec = now.tv_usec; - spin_lock_irqsave(&dev->event_lock, flags); - list_add_tail(&event->base.link, &event->base.file_priv->event_list); - wake_up_interruptible(&event->base.file_priv->event_wait); + ... + drm_send_vblank_event(dev, pipe, event); spin_unlock_irqrestore(&dev->event_lock, flags); ]]> @@ -1621,10 +1611,10 @@ void intel_crt_init(struct drm_device *dev) - + - Mid-layer Helper Functions + Mode Setting Helper Functions The CRTC, encoder and connector functions provided by the drivers implement the DRM API. They're called by the DRM core and ioctl handlers @@ -2106,6 +2096,21 @@ void intel_crt_init(struct drm_device *dev) + + Modeset Helper Functions Reference +!Edrivers/gpu/drm/drm_crtc_helper.c + + + fbdev Helper Functions Reference +!Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers +!Edrivers/gpu/drm/drm_fb_helper.c + + + Display Port Helper Functions Reference +!Pdrivers/gpu/drm/drm_dp_helper.c dp helpers +!Iinclude/drm/drm_dp_helper.h +!Edrivers/gpu/drm/drm_dp_helper.c + diff --git a/trunk/Documentation/DocBook/kernel-api.tmpl b/trunk/Documentation/DocBook/kernel-api.tmpl index 00687ee9d363..f75ab4c1b281 100644 --- a/trunk/Documentation/DocBook/kernel-api.tmpl +++ b/trunk/Documentation/DocBook/kernel-api.tmpl @@ -58,6 +58,9 @@ String Conversions !Elib/vsprintf.c +!Finclude/linux/kernel.h kstrtol +!Finclude/linux/kernel.h kstrtoul +!Elib/kstrtox.c String Manipulation setattr(). Locking information above applies to that call (i.e. is -inherited from ->setattr() - vmtruncate() is used when ATTR_SIZE had been -passed). See Documentation/filesystems/directory-locking for more detailed discussion of the locking scheme for directory operations. diff --git a/trunk/Documentation/filesystems/caching/backend-api.txt b/trunk/Documentation/filesystems/caching/backend-api.txt index 382d52cdaf2d..d78bab9622c6 100644 --- a/trunk/Documentation/filesystems/caching/backend-api.txt +++ b/trunk/Documentation/filesystems/caching/backend-api.txt @@ -308,6 +308,18 @@ performed on the denizens of the cache. These are held in a structure of type: obtained by calling object->cookie->def->get_aux()/get_attr(). + (*) Invalidate data object [mandatory]: + + int (*invalidate_object)(struct fscache_operation *op) + + This is called to invalidate a data object (as pointed to by op->object). + All the data stored for this object should be discarded and an + attr_changed operation should be performed. The caller will follow up + with an object update operation. + + fscache_op_complete() must be called on op before returning. + + (*) Discard object [mandatory]: void (*drop_object)(struct fscache_object *object) @@ -419,7 +431,10 @@ performed on the denizens of the cache. These are held in a structure of type: If an I/O error occurs, fscache_io_error() should be called and -ENOBUFS returned if possible or fscache_end_io() called with a suitable error - code.. + code. + + fscache_put_retrieval() should be called after a page or pages are dealt + with. This will complete the operation when all pages are dealt with. (*) Request pages be read from cache [mandatory]: @@ -526,6 +541,27 @@ FS-Cache provides some utilities that a cache backend may make use of: error value should be 0 if successful and an error otherwise. + (*) Record that one or more pages being retrieved or allocated have been dealt + with: + + void fscache_retrieval_complete(struct fscache_retrieval *op, + int n_pages); + + This is called to record the fact that one or more pages have been dealt + with and are no longer the concern of this operation. When the number of + pages remaining in the operation reaches 0, the operation will be + completed. + + + (*) Record operation completion: + + void fscache_op_complete(struct fscache_operation *op); + + This is called to record the completion of an operation. This deducts + this operation from the parent object's run state, potentially permitting + one or more pending operations to start running. + + (*) Set highest store limit: void fscache_set_store_limit(struct fscache_object *object, diff --git a/trunk/Documentation/filesystems/caching/netfs-api.txt b/trunk/Documentation/filesystems/caching/netfs-api.txt index 7cc6bf2871eb..97e6c0ecc5ef 100644 --- a/trunk/Documentation/filesystems/caching/netfs-api.txt +++ b/trunk/Documentation/filesystems/caching/netfs-api.txt @@ -35,8 +35,9 @@ This document contains the following sections: (12) Index and data file update (13) Miscellaneous cookie operations (14) Cookie unregistration - (15) Index and data file invalidation - (16) FS-Cache specific page flags. + (15) Index invalidation + (16) Data file invalidation + (17) FS-Cache specific page flags. ============================= @@ -767,13 +768,42 @@ the cookies for "child" indices, objects and pages have been relinquished first. -================================ -INDEX AND DATA FILE INVALIDATION -================================ +================== +INDEX INVALIDATION +================== + +There is no direct way to invalidate an index subtree. To do this, the caller +should relinquish and retire the cookie they have, and then acquire a new one. + + +====================== +DATA FILE INVALIDATION +====================== + +Sometimes it will be necessary to invalidate an object that contains data. +Typically this will be necessary when the server tells the netfs of a foreign +change - at which point the netfs has to throw away all the state it had for an +inode and reload from the server. + +To indicate that a cache object should be invalidated, the following function +can be called: + + void fscache_invalidate(struct fscache_cookie *cookie); + +This can be called with spinlocks held as it defers the work to a thread pool. +All extant storage, retrieval and attribute change ops at this point are +cancelled and discarded. Some future operations will be rejected until the +cache has had a chance to insert a barrier in the operations queue. After +that, operations will be queued again behind the invalidation operation. + +The invalidation operation will perform an attribute change operation and an +auxiliary data update operation as it is very likely these will have changed. + +Using the following function, the netfs can wait for the invalidation operation +to have reached a point at which it can start submitting ordinary operations +once again: -There is no direct way to invalidate an index subtree or a data file. To do -this, the caller should relinquish and retire the cookie they have, and then -acquire a new one. + void fscache_wait_on_invalidate(struct fscache_cookie *cookie); =========================== diff --git a/trunk/Documentation/filesystems/caching/object.txt b/trunk/Documentation/filesystems/caching/object.txt index 58313348da87..100ff41127e4 100644 --- a/trunk/Documentation/filesystems/caching/object.txt +++ b/trunk/Documentation/filesystems/caching/object.txt @@ -216,7 +216,14 @@ servicing netfs requests: The normal running state. In this state, requests the netfs makes will be passed on to the cache. - (6) State FSCACHE_OBJECT_UPDATING. + (6) State FSCACHE_OBJECT_INVALIDATING. + + The object is undergoing invalidation. When the state comes here, it + discards all pending read, write and attribute change operations as it is + going to clear out the cache entirely and reinitialise it. It will then + continue to the FSCACHE_OBJECT_UPDATING state. + + (7) State FSCACHE_OBJECT_UPDATING. The state machine comes here to update the object in the cache from the netfs's records. This involves updating the auxiliary data that is used @@ -225,13 +232,13 @@ servicing netfs requests: And there are terminal states in which an object cleans itself up, deallocates memory and potentially deletes stuff from disk: - (7) State FSCACHE_OBJECT_LC_DYING. + (8) State FSCACHE_OBJECT_LC_DYING. The object comes here if it is dying because of a lookup or creation error. This would be due to a disk error or system error of some sort. Temporary data is cleaned up, and the parent is released. - (8) State FSCACHE_OBJECT_DYING. + (9) State FSCACHE_OBJECT_DYING. The object comes here if it is dying due to an error, because its parent cookie has been relinquished by the netfs or because the cache is being @@ -241,27 +248,27 @@ memory and potentially deletes stuff from disk: can destroy themselves. This object waits for all its children to go away before advancing to the next state. - (9) State FSCACHE_OBJECT_ABORT_INIT. +(10) State FSCACHE_OBJECT_ABORT_INIT. The object comes to this state if it was waiting on its parent in FSCACHE_OBJECT_INIT, but its parent died. The object will destroy itself so that the parent may proceed from the FSCACHE_OBJECT_DYING state. -(10) State FSCACHE_OBJECT_RELEASING. -(11) State FSCACHE_OBJECT_RECYCLING. +(11) State FSCACHE_OBJECT_RELEASING. +(12) State FSCACHE_OBJECT_RECYCLING. The object comes to one of these two states when dying once it is rid of all its children, if it is dying because the netfs relinquished its cookie. In the first state, the cached data is expected to persist, and in the second it will be deleted. -(12) State FSCACHE_OBJECT_WITHDRAWING. +(13) State FSCACHE_OBJECT_WITHDRAWING. The object transits to this state if the cache decides it wants to withdraw the object from service, perhaps to make space, but also due to error or just because the whole cache is being withdrawn. -(13) State FSCACHE_OBJECT_DEAD. +(14) State FSCACHE_OBJECT_DEAD. The object transits to this state when the in-memory object record is ready to be deleted. The object processor shouldn't ever see an object in diff --git a/trunk/Documentation/filesystems/caching/operations.txt b/trunk/Documentation/filesystems/caching/operations.txt index b6b070c57cbf..bee2a5f93d60 100644 --- a/trunk/Documentation/filesystems/caching/operations.txt +++ b/trunk/Documentation/filesystems/caching/operations.txt @@ -174,7 +174,7 @@ Operations are used through the following procedure: necessary (the object might have died whilst the thread was waiting). When it has finished doing its processing, it should call - fscache_put_operation() on it. + fscache_op_complete() and fscache_put_operation() on it. (4) The operation holds an effective lock upon the object, preventing other exclusive ops conflicting until it is released. The operation can be diff --git a/trunk/Documentation/filesystems/ext4.txt b/trunk/Documentation/filesystems/ext4.txt index 104322bf378c..34ea4f1fa6ea 100644 --- a/trunk/Documentation/filesystems/ext4.txt +++ b/trunk/Documentation/filesystems/ext4.txt @@ -200,12 +200,9 @@ inode_readahead_blks=n This tuning parameter controls the maximum table readahead algorithm will pre-read into the buffer cache. The default value is 32 blocks. -nouser_xattr Disables Extended User Attributes. If you have extended - attribute support enabled in the kernel configuration - (CONFIG_EXT4_FS_XATTR), extended attribute support - is enabled by default on mount. See the attr(5) manual - page and http://acl.bestbits.at/ for more information - about extended attributes. +nouser_xattr Disables Extended User Attributes. See the + attr(5) manual page and http://acl.bestbits.at/ + for more information about extended attributes. noacl This option disables POSIX Access Control List support. If ACL support is enabled in the kernel diff --git a/trunk/Documentation/filesystems/f2fs.txt b/trunk/Documentation/filesystems/f2fs.txt new file mode 100644 index 000000000000..8fbd8b46ee34 --- /dev/null +++ b/trunk/Documentation/filesystems/f2fs.txt @@ -0,0 +1,421 @@ +================================================================================ +WHAT IS Flash-Friendly File System (F2FS)? +================================================================================ + +NAND flash memory-based storage devices, such as SSD, eMMC, and SD cards, have +been equipped on a variety systems ranging from mobile to server systems. Since +they are known to have different characteristics from the conventional rotating +disks, a file system, an upper layer to the storage device, should adapt to the +changes from the sketch in the design level. + +F2FS is a file system exploiting NAND flash memory-based storage devices, which +is based on Log-structured File System (LFS). The design has been focused on +addressing the fundamental issues in LFS, which are snowball effect of wandering +tree and high cleaning overhead. + +Since a NAND flash memory-based storage device shows different characteristic +according to its internal geometry or flash memory management scheme, namely FTL, +F2FS and its tools support various parameters not only for configuring on-disk +layout, but also for selecting allocation and cleaning algorithms. + +The file system formatting tool, "mkfs.f2fs", is available from the following +git tree: +>> git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git + +For reporting bugs and sending patches, please use the following mailing list: +>> linux-f2fs-devel@lists.sourceforge.net + +================================================================================ +BACKGROUND AND DESIGN ISSUES +================================================================================ + +Log-structured File System (LFS) +-------------------------------- +"A log-structured file system writes all modifications to disk sequentially in +a log-like structure, thereby speeding up both file writing and crash recovery. +The log is the only structure on disk; it contains indexing information so that +files can be read back from the log efficiently. In order to maintain large free +areas on disk for fast writing, we divide the log into segments and use a +segment cleaner to compress the live information from heavily fragmented +segments." from Rosenblum, M. and Ousterhout, J. K., 1992, "The design and +implementation of a log-structured file system", ACM Trans. Computer Systems +10, 1, 26–52. + +Wandering Tree Problem +---------------------- +In LFS, when a file data is updated and written to the end of log, its direct +pointer block is updated due to the changed location. Then the indirect pointer +block is also updated due to the direct pointer block update. In this manner, +the upper index structures such as inode, inode map, and checkpoint block are +also updated recursively. This problem is called as wandering tree problem [1], +and in order to enhance the performance, it should eliminate or relax the update +propagation as much as possible. + +[1] Bityutskiy, A. 2005. JFFS3 design issues. http://www.linux-mtd.infradead.org/ + +Cleaning Overhead +----------------- +Since LFS is based on out-of-place writes, it produces so many obsolete blocks +scattered across the whole storage. In order to serve new empty log space, it +needs to reclaim these obsolete blocks seamlessly to users. This job is called +as a cleaning process. + +The process consists of three operations as follows. +1. A victim segment is selected through referencing segment usage table. +2. It loads parent index structures of all the data in the victim identified by + segment summary blocks. +3. It checks the cross-reference between the data and its parent index structure. +4. It moves valid data selectively. + +This cleaning job may cause unexpected long delays, so the most important goal +is to hide the latencies to users. And also definitely, it should reduce the +amount of valid data to be moved, and move them quickly as well. + +================================================================================ +KEY FEATURES +================================================================================ + +Flash Awareness +--------------- +- Enlarge the random write area for better performance, but provide the high + spatial locality +- Align FS data structures to the operational units in FTL as best efforts + +Wandering Tree Problem +---------------------- +- Use a term, “node”, that represents inodes as well as various pointer blocks +- Introduce Node Address Table (NAT) containing the locations of all the “node” + blocks; this will cut off the update propagation. + +Cleaning Overhead +----------------- +- Support a background cleaning process +- Support greedy and cost-benefit algorithms for victim selection policies +- Support multi-head logs for static/dynamic hot and cold data separation +- Introduce adaptive logging for efficient block allocation + +================================================================================ +MOUNT OPTIONS +================================================================================ + +background_gc_off Turn off cleaning operations, namely garbage collection, + triggered in background when I/O subsystem is idle. +disable_roll_forward Disable the roll-forward recovery routine +discard Issue discard/TRIM commands when a segment is cleaned. +no_heap Disable heap-style segment allocation which finds free + segments for data from the beginning of main area, while + for node from the end of main area. +nouser_xattr Disable Extended User Attributes. Note: xattr is enabled + by default if CONFIG_F2FS_FS_XATTR is selected. +noacl Disable POSIX Access Control List. Note: acl is enabled + by default if CONFIG_F2FS_FS_POSIX_ACL is selected. +active_logs=%u Support configuring the number of active logs. In the + current design, f2fs supports only 2, 4, and 6 logs. + Default number is 6. +disable_ext_identify Disable the extension list configured by mkfs, so f2fs + does not aware of cold files such as media files. + +================================================================================ +DEBUGFS ENTRIES +================================================================================ + +/sys/kernel/debug/f2fs/ contains information about all the partitions mounted as +f2fs. Each file shows the whole f2fs information. + +/sys/kernel/debug/f2fs/status includes: + - major file system information managed by f2fs currently + - average SIT information about whole segments + - current memory footprint consumed by f2fs. + +================================================================================ +USAGE +================================================================================ + +1. Download userland tools and compile them. + +2. Skip, if f2fs was compiled statically inside kernel. + Otherwise, insert the f2fs.ko module. + # insmod f2fs.ko + +3. Create a directory trying to mount + # mkdir /mnt/f2fs + +4. Format the block device, and then mount as f2fs + # mkfs.f2fs -l label /dev/block_device + # mount -t f2fs /dev/block_device /mnt/f2fs + +Format options +-------------- +-l [label] : Give a volume label, up to 256 unicode name. +-a [0 or 1] : Split start location of each area for heap-based allocation. + 1 is set by default, which performs this. +-o [int] : Set overprovision ratio in percent over volume size. + 5 is set by default. +-s [int] : Set the number of segments per section. + 1 is set by default. +-z [int] : Set the number of sections per zone. + 1 is set by default. +-e [str] : Set basic extension list. e.g. "mp3,gif,mov" + +================================================================================ +DESIGN +================================================================================ + +On-disk Layout +-------------- + +F2FS divides the whole volume into a number of segments, each of which is fixed +to 2MB in size. A section is composed of consecutive segments, and a zone +consists of a set of sections. By default, section and zone sizes are set to one +segment size identically, but users can easily modify the sizes by mkfs. + +F2FS splits the entire volume into six areas, and all the areas except superblock +consists of multiple segments as described below. + + align with the zone size <-| + |-> align with the segment size + _________________________________________________________________________ + | | | Node | Segment | Segment | | + | Superblock | Checkpoint | Address | Info. | Summary | Main | + | (SB) | (CP) | Table (NAT) | Table (SIT) | Area (SSA) | | + |____________|_____2______|______N______|______N______|______N_____|__N___| + . . + . . + . . + ._________________________________________. + |_Segment_|_..._|_Segment_|_..._|_Segment_| + . . + ._________._________ + |_section_|__...__|_ + . . + .________. + |__zone__| + +- Superblock (SB) + : It is located at the beginning of the partition, and there exist two copies + to avoid file system crash. It contains basic partition information and some + default parameters of f2fs. + +- Checkpoint (CP) + : It contains file system information, bitmaps for valid NAT/SIT sets, orphan + inode lists, and summary entries of current active segments. + +- Node Address Table (NAT) + : It is composed of a block address table for all the node blocks stored in + Main area. + +- Segment Information Table (SIT) + : It contains segment information such as valid block count and bitmap for the + validity of all the blocks. + +- Segment Summary Area (SSA) + : It contains summary entries which contains the owner information of all the + data and node blocks stored in Main area. + +- Main Area + : It contains file and directory data including their indices. + +In order to avoid misalignment between file system and flash-based storage, F2FS +aligns the start block address of CP with the segment size. Also, it aligns the +start block address of Main area with the zone size by reserving some segments +in SSA area. + +Reference the following survey for additional technical details. +https://wiki.linaro.org/WorkingGroups/Kernel/Projects/FlashCardSurvey + +File System Metadata Structure +------------------------------ + +F2FS adopts the checkpointing scheme to maintain file system consistency. At +mount time, F2FS first tries to find the last valid checkpoint data by scanning +CP area. In order to reduce the scanning time, F2FS uses only two copies of CP. +One of them always indicates the last valid data, which is called as shadow copy +mechanism. In addition to CP, NAT and SIT also adopt the shadow copy mechanism. + +For file system consistency, each CP points to which NAT and SIT copies are +valid, as shown as below. + + +--------+----------+---------+ + | CP | NAT | SIT | + +--------+----------+---------+ + . . . . + . . . . + . . . . + +-------+-------+--------+--------+--------+--------+ + | CP #0 | CP #1 | NAT #0 | NAT #1 | SIT #0 | SIT #1 | + +-------+-------+--------+--------+--------+--------+ + | ^ ^ + | | | + `----------------------------------------' + +Index Structure +--------------- + +The key data structure to manage the data locations is a "node". Similar to +traditional file structures, F2FS has three types of node: inode, direct node, +indirect node. F2FS assigns 4KB to an inode block which contains 923 data block +indices, two direct node pointers, two indirect node pointers, and one double +indirect node pointer as described below. One direct node block contains 1018 +data blocks, and one indirect node block contains also 1018 node blocks. Thus, +one inode block (i.e., a file) covers: + + 4KB * (923 + 2 * 1018 + 2 * 1018 * 1018 + 1018 * 1018 * 1018) := 3.94TB. + + Inode block (4KB) + |- data (923) + |- direct node (2) + | `- data (1018) + |- indirect node (2) + | `- direct node (1018) + | `- data (1018) + `- double indirect node (1) + `- indirect node (1018) + `- direct node (1018) + `- data (1018) + +Note that, all the node blocks are mapped by NAT which means the location of +each node is translated by the NAT table. In the consideration of the wandering +tree problem, F2FS is able to cut off the propagation of node updates caused by +leaf data writes. + +Directory Structure +------------------- + +A directory entry occupies 11 bytes, which consists of the following attributes. + +- hash hash value of the file name +- ino inode number +- len the length of file name +- type file type such as directory, symlink, etc + +A dentry block consists of 214 dentry slots and file names. Therein a bitmap is +used to represent whether each dentry is valid or not. A dentry block occupies +4KB with the following composition. + + Dentry Block(4 K) = bitmap (27 bytes) + reserved (3 bytes) + + dentries(11 * 214 bytes) + file name (8 * 214 bytes) + + [Bucket] + +--------------------------------+ + |dentry block 1 | dentry block 2 | + +--------------------------------+ + . . + . . + . [Dentry Block Structure: 4KB] . + +--------+----------+----------+------------+ + | bitmap | reserved | dentries | file names | + +--------+----------+----------+------------+ + [Dentry Block: 4KB] . . + . . + . . + +------+------+-----+------+ + | hash | ino | len | type | + +------+------+-----+------+ + [Dentry Structure: 11 bytes] + +F2FS implements multi-level hash tables for directory structure. Each level has +a hash table with dedicated number of hash buckets as shown below. Note that +"A(2B)" means a bucket includes 2 data blocks. + +---------------------- +A : bucket +B : block +N : MAX_DIR_HASH_DEPTH +---------------------- + +level #0 | A(2B) + | +level #1 | A(2B) - A(2B) + | +level #2 | A(2B) - A(2B) - A(2B) - A(2B) + . | . . . . +level #N/2 | A(2B) - A(2B) - A(2B) - A(2B) - A(2B) - ... - A(2B) + . | . . . . +level #N | A(4B) - A(4B) - A(4B) - A(4B) - A(4B) - ... - A(4B) + +The number of blocks and buckets are determined by, + + ,- 2, if n < MAX_DIR_HASH_DEPTH / 2, + # of blocks in level #n = | + `- 4, Otherwise + + ,- 2^n, if n < MAX_DIR_HASH_DEPTH / 2, + # of buckets in level #n = | + `- 2^((MAX_DIR_HASH_DEPTH / 2) - 1), Otherwise + +When F2FS finds a file name in a directory, at first a hash value of the file +name is calculated. Then, F2FS scans the hash table in level #0 to find the +dentry consisting of the file name and its inode number. If not found, F2FS +scans the next hash table in level #1. In this way, F2FS scans hash tables in +each levels incrementally from 1 to N. In each levels F2FS needs to scan only +one bucket determined by the following equation, which shows O(log(# of files)) +complexity. + + bucket number to scan in level #n = (hash value) % (# of buckets in level #n) + +In the case of file creation, F2FS finds empty consecutive slots that cover the +file name. F2FS searches the empty slots in the hash tables of whole levels from +1 to N in the same way as the lookup operation. + +The following figure shows an example of two cases holding children. + --------------> Dir <-------------- + | | + child child + + child - child [hole] - child + + child - child - child [hole] - [hole] - child + + Case 1: Case 2: + Number of children = 6, Number of children = 3, + File size = 7 File size = 7 + +Default Block Allocation +------------------------ + +At runtime, F2FS manages six active logs inside "Main" area: Hot/Warm/Cold node +and Hot/Warm/Cold data. + +- Hot node contains direct node blocks of directories. +- Warm node contains direct node blocks except hot node blocks. +- Cold node contains indirect node blocks +- Hot data contains dentry blocks +- Warm data contains data blocks except hot and cold data blocks +- Cold data contains multimedia data or migrated data blocks + +LFS has two schemes for free space management: threaded log and copy-and-compac- +tion. The copy-and-compaction scheme which is known as cleaning, is well-suited +for devices showing very good sequential write performance, since free segments +are served all the time for writing new data. However, it suffers from cleaning +overhead under high utilization. Contrarily, the threaded log scheme suffers +from random writes, but no cleaning process is needed. F2FS adopts a hybrid +scheme where the copy-and-compaction scheme is adopted by default, but the +policy is dynamically changed to the threaded log scheme according to the file +system status. + +In order to align F2FS with underlying flash-based storage, F2FS allocates a +segment in a unit of section. F2FS expects that the section size would be the +same as the unit size of garbage collection in FTL. Furthermore, with respect +to the mapping granularity in FTL, F2FS allocates each section of the active +logs from different zones as much as possible, since FTL can write the data in +the active logs into one allocation unit according to its mapping granularity. + +Cleaning process +---------------- + +F2FS does cleaning both on demand and in the background. On-demand cleaning is +triggered when there are not enough free segments to serve VFS calls. Background +cleaner is operated by a kernel thread, and triggers the cleaning job when the +system is idle. + +F2FS supports two victim selection policies: greedy and cost-benefit algorithms. +In the greedy algorithm, F2FS selects a victim segment having the smallest number +of valid blocks. In the cost-benefit algorithm, F2FS selects a victim segment +according to the segment age and the number of valid blocks in order to address +log block thrashing problem in the greedy algorithm. F2FS adopts the greedy +algorithm for on-demand cleaner, while background cleaner adopts cost-benefit +algorithm. + +In order to identify whether the data in the victim segment are valid or not, +F2FS manages a bitmap. Each bit represents the validity of a block, and the +bitmap is composed of a bit stream covering whole blocks in main area. diff --git a/trunk/Documentation/filesystems/nfs/nfs41-server.txt b/trunk/Documentation/filesystems/nfs/nfs41-server.txt index 092fad92a3f0..01c2db769791 100644 --- a/trunk/Documentation/filesystems/nfs/nfs41-server.txt +++ b/trunk/Documentation/filesystems/nfs/nfs41-server.txt @@ -39,21 +39,10 @@ interoperability problems with future clients. Known issues: from a linux client are possible, but we aren't really conformant with the spec (for example, we don't use kerberos on the backchannel correctly). - - Incomplete backchannel support: incomplete backchannel gss - support and no support for BACKCHANNEL_CTL mean that - callbacks (hence delegations and layouts) may not be - available and clients confused by the incomplete - implementation may fail. - We do not support SSV, which provides security for shared client-server state (thus preventing unauthorized tampering with locks and opens, for example). It is mandatory for servers to support this, though no clients use it yet. - - Mandatory operations which we do not support, such as - DESTROY_CLIENTID, are not currently used by clients, but will be - (and the spec recommends their uses in common cases), and - clients should not be expected to know how to recover from the - case where they are not supported. This will eventually cause - interoperability failures. In addition, some limitations are inherited from the current NFSv4 implementation: @@ -89,7 +78,7 @@ Operations | | MNI | or OPT) | | +----------------------+------------+--------------+----------------+ | ACCESS | REQ | | Section 18.1 | -NS | BACKCHANNEL_CTL | REQ | | Section 18.33 | +I | BACKCHANNEL_CTL | REQ | | Section 18.33 | I | BIND_CONN_TO_SESSION | REQ | | Section 18.34 | | CLOSE | REQ | | Section 18.2 | | COMMIT | REQ | | Section 18.3 | @@ -99,7 +88,7 @@ NS*| DELEGPURGE | OPT | FDELG (REQ) | Section 18.5 | | DELEGRETURN | OPT | FDELG, | Section 18.6 | | | | DDELG, pNFS | | | | | (REQ) | | -NS | DESTROY_CLIENTID | REQ | | Section 18.50 | +I | DESTROY_CLIENTID | REQ | | Section 18.50 | I | DESTROY_SESSION | REQ | | Section 18.37 | I | EXCHANGE_ID | REQ | | Section 18.35 | I | FREE_STATEID | REQ | | Section 18.38 | @@ -192,7 +181,6 @@ EXCHANGE_ID: CREATE_SESSION: * backchannel attributes are ignored -* backchannel security parameters are ignored SEQUENCE: * no support for dynamic slot table renegotiation (optional) @@ -202,7 +190,7 @@ Nonstandard compound limitations: ca_maxrequestsize request and a ca_maxresponsesize reply, so we may fail to live up to the promise we made in CREATE_SESSION fore channel negotiation. -* No more than one IO operation (read, write, readdir) allowed per - compound. +* No more than one read-like operation allowed per compound; encoding + replies that cross page boundaries (except for read data) not handled. See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues. diff --git a/trunk/Documentation/filesystems/porting b/trunk/Documentation/filesystems/porting index 0742feebc6e2..0472c31c163b 100644 --- a/trunk/Documentation/filesystems/porting +++ b/trunk/Documentation/filesystems/porting @@ -281,7 +281,7 @@ ext2_write_failed and callers for an example. [mandatory] - ->truncate is going away. The whole truncate sequence needs to be + ->truncate is gone. The whole truncate sequence needs to be implemented in ->setattr, which is now mandatory for filesystems implementing on-disk size changes. Start with a copy of the old inode_setattr and vmtruncate, and the reorder the vmtruncate + foofs_vmtruncate sequence to diff --git a/trunk/Documentation/filesystems/proc.txt b/trunk/Documentation/filesystems/proc.txt index 3844d21d6ca3..fd8d0d594fc7 100644 --- a/trunk/Documentation/filesystems/proc.txt +++ b/trunk/Documentation/filesystems/proc.txt @@ -41,6 +41,7 @@ Table of Contents 3.5 /proc//mountinfo - Information about mounts 3.6 /proc//comm & /proc//task//comm 3.7 /proc//task//children - Information about task children + 3.8 /proc//fdinfo/ - Information about opened file 4 Configuring procfs 4.1 Mount options @@ -142,7 +143,7 @@ Table 1-1: Process specific entries in /proc pagemap Page table stack Report full stack trace, enable via CONFIG_STACKTRACE smaps a extension based on maps, showing the memory consumption of - each mapping + each mapping and flags associated with it .............................................................................. For example, to get the status information of a process, all you have to do is @@ -181,6 +182,7 @@ read the file /proc/PID/status: CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff + Seccomp: 0 voluntary_ctxt_switches: 0 nonvoluntary_ctxt_switches: 1 @@ -237,6 +239,7 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) CapPrm bitmap of permitted capabilities CapEff bitmap of effective capabilities CapBnd bitmap of capabilities bounding set + Seccomp seccomp mode, like prctl(PR_GET_SECCOMP, ...) Cpus_allowed mask of CPUs on which this process may run Cpus_allowed_list Same as previous, but in "list format" Mems_allowed mask of memory nodes allowed to this process @@ -415,8 +418,9 @@ Swap: 0 kB KernelPageSize: 4 kB MMUPageSize: 4 kB Locked: 374 kB +VmFlags: rd ex mr mw me de -The first of these lines shows the same information as is displayed for the +the first of these lines shows the same information as is displayed for the mapping in /proc/PID/maps. The remaining lines show the size of the mapping (size), the amount of the mapping that is currently resident in RAM (RSS), the process' proportional share of this mapping (PSS), the number of clean and @@ -430,6 +434,41 @@ and a page is modified, the file page is replaced by a private anonymous copy. "Swap" shows how much would-be-anonymous memory is also used, but out on swap. +"VmFlags" field deserves a separate description. This member represents the kernel +flags associated with the particular virtual memory area in two letter encoded +manner. The codes are the following: + rd - readable + wr - writeable + ex - executable + sh - shared + mr - may read + mw - may write + me - may execute + ms - may share + gd - stack segment growns down + pf - pure PFN range + dw - disabled write to the mapped file + lo - pages are locked in memory + io - memory mapped I/O area + sr - sequential read advise provided + rr - random read advise provided + dc - do not copy area on fork + de - do not expand area on remapping + ac - area is accountable + nr - swap space is not reserved for the area + ht - area uses huge tlb pages + nl - non-linear mapping + ar - architecture specific flag + dd - do not include area into core dump + mm - mixed map area + hg - huge page advise flag + nh - no-huge page advise flag + mg - mergable advise flag + +Note that there is no guarantee that every flag and associated mnemonic will +be present in all further kernel releases. Things get changed, the flags may +be vanished or the reverse -- new added. + This file is only present if the CONFIG_MMU kernel configuration option is enabled. @@ -1595,6 +1634,93 @@ pids, so one need to either stop or freeze processes being inspected if precise results are needed. +3.7 /proc//fdinfo/ - Information about opened file +--------------------------------------------------------------- +This file provides information associated with an opened file. The regular +files have at least two fields -- 'pos' and 'flags'. The 'pos' represents +the current offset of the opened file in decimal form [see lseek(2) for +details] and 'flags' denotes the octal O_xxx mask the file has been +created with [see open(2) for details]. + +A typical output is + + pos: 0 + flags: 0100002 + +The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags +pair provide additional information particular to the objects they represent. + + Eventfd files + ~~~~~~~~~~~~~ + pos: 0 + flags: 04002 + eventfd-count: 5a + + where 'eventfd-count' is hex value of a counter. + + Signalfd files + ~~~~~~~~~~~~~~ + pos: 0 + flags: 04002 + sigmask: 0000000000000200 + + where 'sigmask' is hex value of the signal mask associated + with a file. + + Epoll files + ~~~~~~~~~~~ + pos: 0 + flags: 02 + tfd: 5 events: 1d data: ffffffffffffffff + + where 'tfd' is a target file descriptor number in decimal form, + 'events' is events mask being watched and the 'data' is data + associated with a target [see epoll(7) for more details]. + + Fsnotify files + ~~~~~~~~~~~~~~ + For inotify files the format is the following + + pos: 0 + flags: 02000000 + inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:7e9e0000640d1b6d + + where 'wd' is a watch descriptor in decimal form, ie a target file + descriptor number, 'ino' and 'sdev' are inode and device where the + target file resides and the 'mask' is the mask of events, all in hex + form [see inotify(7) for more details]. + + If the kernel was built with exportfs support, the path to the target + file is encoded as a file handle. The file handle is provided by three + fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex + format. + + If the kernel is built without exportfs support the file handle won't be + printed out. + + If there is no inotify mark attached yet the 'inotify' line will be omitted. + + For fanotify files the format is + + pos: 0 + flags: 02 + fanotify flags:10 event-flags:0 + fanotify mnt_id:12 mflags:40 mask:38 ignored_mask:40000003 + fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type:1 f_handle:69f90400c275b5b4 + + where fanotify 'flags' and 'event-flags' are values used in fanotify_init + call, 'mnt_id' is the mount point identifier, 'mflags' is the value of + flags associated with mark which are tracked separately from events + mask. 'ino', 'sdev' are target inode and device, 'mask' is the events + mask and 'ignored_mask' is the mask of events which are to be ignored. + All in hex format. Incorporation of 'mflags', 'mask' and 'ignored_mask' + does provide information about flags and mask used in fanotify_mark + call [see fsnotify manpage for details]. + + While the first three lines are mandatory and always printed, the rest is + optional and may be omitted if no marks created yet. + + ------------------------------------------------------------------------------ Configuring procfs ------------------------------------------------------------------------------ diff --git a/trunk/Documentation/filesystems/vfat.txt b/trunk/Documentation/filesystems/vfat.txt index de1e6c4dccff..d230dd9c99b0 100644 --- a/trunk/Documentation/filesystems/vfat.txt +++ b/trunk/Documentation/filesystems/vfat.txt @@ -111,6 +111,15 @@ tz=UTC -- Interpret timestamps as UTC rather than local time. useful when mounting devices (like digital cameras) that are set to UTC in order to avoid the pitfalls of local time. +time_offset=minutes + -- Set offset for conversion of timestamps from local time + used by FAT to UTC. I.e. minutes will be subtracted + from each timestamp to convert it to UTC used internally by + Linux. This is useful when time zone set in sys_tz is + not the time zone used by the filesystem. Note that this + option still does not provide correct time stamps in all + cases in presence of DST - time stamps in a different DST + setting will be off by one hour. showexec -- If set, the execute permission bits of the file will be allowed only if the extension part of the name is .EXE, diff --git a/trunk/Documentation/filesystems/vfs.txt b/trunk/Documentation/filesystems/vfs.txt index 2ee133e030c3..e3869098163e 100644 --- a/trunk/Documentation/filesystems/vfs.txt +++ b/trunk/Documentation/filesystems/vfs.txt @@ -350,7 +350,6 @@ struct inode_operations { int (*readlink) (struct dentry *, char __user *,int); void * (*follow_link) (struct dentry *, struct nameidata *); void (*put_link) (struct dentry *, struct nameidata *, void *); - void (*truncate) (struct inode *); int (*permission) (struct inode *, int); int (*get_acl)(struct inode *, int); int (*setattr) (struct dentry *, struct iattr *); @@ -431,16 +430,6 @@ otherwise noted. started might not be in the page cache at the end of the walk). - truncate: Deprecated. This will not be called if ->setsize is defined. - Called by the VFS to change the size of a file. The - i_size field of the inode is set to the desired size by the - VFS before this method is called. This method is called by - the truncate(2) system call and related functionality. - - Note: ->truncate and vmtruncate are deprecated. Do not add new - instances/calls of these. Filesystems should be converted to do their - truncate sequence via ->setattr(). - permission: called by the VFS to check for access rights on a POSIX-like filesystem. diff --git a/trunk/Documentation/hwmon/it87 b/trunk/Documentation/hwmon/it87 index 87850d86c559..8386aadc0a82 100644 --- a/trunk/Documentation/hwmon/it87 +++ b/trunk/Documentation/hwmon/it87 @@ -209,3 +209,13 @@ doesn't use CPU cycles. Trip points must be set properly before switching to automatic fan speed control mode. The driver will perform basic integrity checks before actually switching to automatic control mode. + + +Temperature offset attributes +----------------------------- + +The driver supports temp[1-3]_offset sysfs attributes to adjust the reported +temperature for thermal diodes or diode-connected thermal transistors. +If a temperature sensor is configured for thermistors, the attribute values +are ignored. If the thermal sensor type is Intel PECI, the temperature offset +must be programmed to the critical CPU temperature. diff --git a/trunk/Documentation/i2c/smbus-protocol b/trunk/Documentation/i2c/smbus-protocol index 49f5b680809d..d1f22618e14b 100644 --- a/trunk/Documentation/i2c/smbus-protocol +++ b/trunk/Documentation/i2c/smbus-protocol @@ -23,6 +23,12 @@ don't match these function names. For some of the operations which pass a single data byte, the functions using SMBus protocol operation names execute a different protocol operation entirely. +Each transaction type corresponds to a functionality flag. Before calling a +transaction function, a device driver should always check (just once) for +the corresponding functionality flag to ensure that the underlying I2C +adapter supports the transaction in question. See + for the details. + Key to symbols ============== @@ -49,6 +55,8 @@ This sends a single bit to the device, at the place of the Rd/Wr bit. A Addr Rd/Wr [A] P +Functionality flag: I2C_FUNC_SMBUS_QUICK + SMBus Receive Byte: i2c_smbus_read_byte() ========================================== @@ -60,6 +68,8 @@ the previous SMBus command. S Addr Rd [A] [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BYTE + SMBus Send Byte: i2c_smbus_write_byte() ======================================== @@ -69,6 +79,8 @@ to a device. See Receive Byte for more information. S Addr Wr [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE + SMBus Read Byte: i2c_smbus_read_byte_data() ============================================ @@ -78,6 +90,8 @@ The register is specified through the Comm byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BYTE_DATA + SMBus Read Word: i2c_smbus_read_word_data() ============================================ @@ -88,6 +102,8 @@ byte. But this time, the data is a complete word (16 bits). S Addr Wr [A] Comm [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_WORD_DATA + Note the convenience function i2c_smbus_read_word_swapped is available for reads where the two data bytes are the other way around (not SMBus compliant, but very popular.) @@ -102,6 +118,8 @@ the Read Byte operation. S Addr Wr [A] Comm [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BYTE_DATA + SMBus Write Word: i2c_smbus_write_word_data() ============================================== @@ -112,6 +130,8 @@ specified through the Comm byte. S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_WORD_DATA + Note the convenience function i2c_smbus_write_word_swapped is available for writes where the two data bytes are the other way around (not SMBus compliant, but very popular.) @@ -126,6 +146,8 @@ This command selects a device register (through the Comm byte), sends S Addr Wr [A] Comm [A] DataLow [A] DataHigh [A] S Addr Rd [A] [DataLow] A [DataHigh] NA P +Functionality flag: I2C_FUNC_SMBUS_PROC_CALL + SMBus Block Read: i2c_smbus_read_block_data() ============================================== @@ -137,6 +159,8 @@ of data is specified by the device in the Count byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Count] A [Data] A [Data] A ... A [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_BLOCK_DATA + SMBus Block Write: i2c_smbus_write_block_data() ================================================ @@ -147,6 +171,8 @@ Comm byte. The amount of data is specified in the Count byte. S Addr Wr [A] Comm [A] Count [A] Data [A] Data [A] ... [A] Data [A] P +Functionality flag: I2C_FUNC_SMBUS_WRITE_BLOCK_DATA + SMBus Block Write - Block Read Process Call =========================================== @@ -160,6 +186,8 @@ This command selects a device register (through the Comm byte), sends S Addr Wr [A] Comm [A] Count [A] Data [A] ... S Addr Rd [A] [Count] A [Data] ... A P +Functionality flag: I2C_FUNC_SMBUS_BLOCK_PROC_CALL + SMBus Host Notify ================= @@ -229,15 +257,7 @@ designated register that is specified through the Comm byte. S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P - -I2C Block Read (2 Comm bytes) -============================= - -This command reads a block of bytes from a device, from a -designated register that is specified through the two Comm bytes. - -S Addr Wr [A] Comm1 [A] Comm2 [A] - S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P +Functionality flag: I2C_FUNC_SMBUS_READ_I2C_BLOCK I2C Block Write: i2c_smbus_write_i2c_block_data() @@ -249,3 +269,5 @@ Comm byte. Note that command lengths of 0, 2, or more bytes are supported as they are indistinguishable from data. S Addr Wr [A] Comm [A] Data [A] Data [A] ... [A] Data [A] P + +Functionality flag: I2C_FUNC_SMBUS_WRITE_I2C_BLOCK diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 20e248cc03a9..363e348bff9b 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -446,12 +446,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. possible to determine what the correct size should be. This option provides an override for these situations. - capability.disable= - [SECURITY] Disable capabilities. This would normally - be used only if an alternative security model is to be - configured. Potentially dangerous and should only be - used if you are entirely sure of the consequences. - ccw_timeout_log [S390] See Documentation/s390/CommonIO for details. @@ -1503,9 +1497,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory Amount of memory to be used when the kernel is not able to see the whole system memory or for test. - [X86-32] Use together with memmap= to avoid physical - address space collisions. Without memmap= PCI devices - could be placed at addresses belonging to unused RAM. + [X86] Work as limiting max address. Use together + with memmap= to avoid physical address space collisions. + Without memmap= PCI devices could be placed at addresses + belonging to unused RAM. mem=nopentium [BUGS=X86-32] Disable usage of 4MB pages for kernel memory. @@ -2032,6 +2027,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. nr_uarts= [SERIAL] maximum number of UARTs to be registered. + numa_balancing= [KNL,X86] Enable or disable automatic NUMA balancing. + Allowed values are enable and disable + numa_zonelist_order= [KNL, BOOT] Select zonelist order for NUMA. one of ['zone', 'node', 'default'] can be specified This can be set from sysctl after boot. diff --git a/trunk/Documentation/kref.txt b/trunk/Documentation/kref.txt index 48ba715d5a63..ddf85a5dde0c 100644 --- a/trunk/Documentation/kref.txt +++ b/trunk/Documentation/kref.txt @@ -213,3 +213,91 @@ presentation on krefs, which can be found at: and: http://www.kroah.com/linux/talks/ols_2004_kref_talk/ + +The above example could also be optimized using kref_get_unless_zero() in +the following way: + +static struct my_data *get_entry() +{ + struct my_data *entry = NULL; + mutex_lock(&mutex); + if (!list_empty(&q)) { + entry = container_of(q.next, struct my_data, link); + if (!kref_get_unless_zero(&entry->refcount)) + entry = NULL; + } + mutex_unlock(&mutex); + return entry; +} + +static void release_entry(struct kref *ref) +{ + struct my_data *entry = container_of(ref, struct my_data, refcount); + + mutex_lock(&mutex); + list_del(&entry->link); + mutex_unlock(&mutex); + kfree(entry); +} + +static void put_entry(struct my_data *entry) +{ + kref_put(&entry->refcount, release_entry); +} + +Which is useful to remove the mutex lock around kref_put() in put_entry(), but +it's important that kref_get_unless_zero is enclosed in the same critical +section that finds the entry in the lookup table, +otherwise kref_get_unless_zero may reference already freed memory. +Note that it is illegal to use kref_get_unless_zero without checking its +return value. If you are sure (by already having a valid pointer) that +kref_get_unless_zero() will return true, then use kref_get() instead. + +The function kref_get_unless_zero also makes it possible to use rcu +locking for lookups in the above example: + +struct my_data +{ + struct rcu_head rhead; + . + struct kref refcount; + . + . +}; + +static struct my_data *get_entry_rcu() +{ + struct my_data *entry = NULL; + rcu_read_lock(); + if (!list_empty(&q)) { + entry = container_of(q.next, struct my_data, link); + if (!kref_get_unless_zero(&entry->refcount)) + entry = NULL; + } + rcu_read_unlock(); + return entry; +} + +static void release_entry_rcu(struct kref *ref) +{ + struct my_data *entry = container_of(ref, struct my_data, refcount); + + mutex_lock(&mutex); + list_del_rcu(&entry->link); + mutex_unlock(&mutex); + kfree_rcu(entry, rhead); +} + +static void put_entry(struct my_data *entry) +{ + kref_put(&entry->refcount, release_entry_rcu); +} + +But note that the struct kref member needs to remain in valid memory for a +rcu grace period after release_entry_rcu was called. That can be accomplished +by using kfree_rcu(entry, rhead) as done above, or by calling synchronize_rcu() +before using kfree, but note that synchronize_rcu() may sleep for a +substantial amount of time. + + +Thomas Hellstrom diff --git a/trunk/Documentation/powerpc/ptrace.txt b/trunk/Documentation/powerpc/ptrace.txt index f4a5499b7bc6..f2a7a3919772 100644 --- a/trunk/Documentation/powerpc/ptrace.txt +++ b/trunk/Documentation/powerpc/ptrace.txt @@ -127,6 +127,22 @@ Some examples of using the structure to: p.addr2 = (uint64_t) end_range; p.condition_value = 0; +- set a watchpoint in server processors (BookS) + + p.version = 1; + p.trigger_type = PPC_BREAKPOINT_TRIGGER_RW; + p.addr_mode = PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE; + or + p.addr_mode = PPC_BREAKPOINT_MODE_EXACT; + + p.condition_mode = PPC_BREAKPOINT_CONDITION_NONE; + p.addr = (uint64_t) begin_range; + /* For PPC_BREAKPOINT_MODE_RANGE_INCLUSIVE addr2 needs to be specified, where + * addr2 - addr <= 8 Bytes. + */ + p.addr2 = (uint64_t) end_range; + p.condition_value = 0; + 3. PTRACE_DELHWDEBUG Takes an integer which identifies an existing breakpoint or watchpoint diff --git a/trunk/Documentation/prctl/seccomp_filter.txt b/trunk/Documentation/prctl/seccomp_filter.txt index 597c3c581375..1e469ef75778 100644 --- a/trunk/Documentation/prctl/seccomp_filter.txt +++ b/trunk/Documentation/prctl/seccomp_filter.txt @@ -95,12 +95,15 @@ SECCOMP_RET_KILL: SECCOMP_RET_TRAP: Results in the kernel sending a SIGSYS signal to the triggering - task without executing the system call. The kernel will - rollback the register state to just before the system call - entry such that a signal handler in the task will be able to - inspect the ucontext_t->uc_mcontext registers and emulate - system call success or failure upon return from the signal - handler. + task without executing the system call. siginfo->si_call_addr + will show the address of the system call instruction, and + siginfo->si_syscall and siginfo->si_arch will indicate which + syscall was attempted. The program counter will be as though + the syscall happened (i.e. it will not point to the syscall + instruction). The return value register will contain an arch- + dependent value -- if resuming execution, set it to something + sensible. (The architecture dependency is because replacing + it with -ENOSYS could overwrite some useful information.) The SECCOMP_RET_DATA portion of the return value will be passed as si_errno. @@ -123,6 +126,18 @@ SECCOMP_RET_TRACE: the BPF program return value will be available to the tracer via PTRACE_GETEVENTMSG. + The tracer can skip the system call by changing the syscall number + to -1. Alternatively, the tracer can change the system call + requested by changing the system call to a valid syscall number. If + the tracer asks to skip the system call, then the system call will + appear to return the value that the tracer puts in the return value + register. + + The seccomp check will not be run again after the tracer is + notified. (This means that seccomp-based sandboxes MUST NOT + allow use of ptrace, even of other sandboxed processes, without + extreme care; ptracers can use this mechanism to escape.) + SECCOMP_RET_ALLOW: Results in the system call being executed. @@ -161,3 +176,50 @@ architecture supports both ptrace_event and seccomp, it will be able to support seccomp filter with minor fixup: SIGSYS support and seccomp return value checking. Then it must just add CONFIG_HAVE_ARCH_SECCOMP_FILTER to its arch-specific Kconfig. + + + +Caveats +------- + +The vDSO can cause some system calls to run entirely in userspace, +leading to surprises when you run programs on different machines that +fall back to real syscalls. To minimize these surprises on x86, make +sure you test with +/sys/devices/system/clocksource/clocksource0/current_clocksource set to +something like acpi_pm. + +On x86-64, vsyscall emulation is enabled by default. (vsyscalls are +legacy variants on vDSO calls.) Currently, emulated vsyscalls will honor seccomp, with a few oddities: + +- A return value of SECCOMP_RET_TRAP will set a si_call_addr pointing to + the vsyscall entry for the given call and not the address after the + 'syscall' instruction. Any code which wants to restart the call + should be aware that (a) a ret instruction has been emulated and (b) + trying to resume the syscall will again trigger the standard vsyscall + emulation security checks, making resuming the syscall mostly + pointless. + +- A return value of SECCOMP_RET_TRACE will signal the tracer as usual, + but the syscall may not be changed to another system call using the + orig_rax register. It may only be changed to -1 order to skip the + currently emulated call. Any other change MAY terminate the process. + The rip value seen by the tracer will be the syscall entry address; + this is different from normal behavior. The tracer MUST NOT modify + rip or rsp. (Do not rely on other changes terminating the process. + They might work. For example, on some kernels, choosing a syscall + that only exists in future kernels will be correctly emulated (by + returning -ENOSYS). + +To detect this quirky behavior, check for addr & ~0x0C00 == +0xFFFFFFFFFF600000. (For SECCOMP_RET_TRACE, use rip. For +SECCOMP_RET_TRAP, use siginfo->si_call_addr.) Do not check any other +condition: future kernels may improve vsyscall emulation and current +kernels in vsyscall=native mode will behave differently, but the +instructions at 0xF...F600{0,4,8,C}00 will not be system calls in these +cases. + +Note that modern systems are unlikely to use vsyscalls at all -- they +are a legacy feature and they are considerably slower than standard +syscalls. New code will use the vDSO, and vDSO-issued system calls +are indistinguishable from normal system calls. diff --git a/trunk/Documentation/security/00-INDEX b/trunk/Documentation/security/00-INDEX index eeed1de546d4..414235c1fcfc 100644 --- a/trunk/Documentation/security/00-INDEX +++ b/trunk/Documentation/security/00-INDEX @@ -12,6 +12,8 @@ apparmor.txt - documentation on the AppArmor security extension. credentials.txt - documentation about credentials in Linux. +keys-ecryptfs.txt + - description of the encryption keys for the ecryptfs filesystem. keys-request-key.txt - description of the kernel key request service. keys-trusted-encrypted.txt diff --git a/trunk/Documentation/security/keys.txt b/trunk/Documentation/security/keys.txt index 7d9ca92022d8..7b4145d00452 100644 --- a/trunk/Documentation/security/keys.txt +++ b/trunk/Documentation/security/keys.txt @@ -994,6 +994,23 @@ payload contents" for more information. reference pointer if successful. +(*) A keyring can be created by: + + struct key *keyring_alloc(const char *description, uid_t uid, gid_t gid, + const struct cred *cred, + key_perm_t perm, + unsigned long flags, + struct key *dest); + + This creates a keyring with the given attributes and returns it. If dest + is not NULL, the new keyring will be linked into the keyring to which it + points. No permission checks are made upon the destination keyring. + + Error EDQUOT can be returned if the keyring would overload the quota (pass + KEY_ALLOC_NOT_IN_QUOTA in flags if the keyring shouldn't be accounted + towards the user's quota). Error ENOMEM can also be returned. + + (*) To check the validity of a key, this function can be called: int validate_key(struct key *key); diff --git a/trunk/Documentation/sparse.txt b/trunk/Documentation/sparse.txt index 4909d4116356..eceab1308a8c 100644 --- a/trunk/Documentation/sparse.txt +++ b/trunk/Documentation/sparse.txt @@ -49,6 +49,24 @@ be generated without __CHECK_ENDIAN__. __bitwise - noisy stuff; in particular, __le*/__be* are that. We really don't want to drown in noise unless we'd explicitly asked for it. +Using sparse for lock checking +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following macros are undefined for gcc and defined during a sparse +run to use the "context" tracking feature of sparse, applied to +locking. These annotations tell sparse when a lock is held, with +regard to the annotated function's entry and exit. + +__must_hold - The specified lock is held on function entry and exit. + +__acquires - The specified lock is held on function exit, but not entry. + +__releases - The specified lock is held on function entry, but not exit. + +If the function enters and exits without the lock held, acquiring and +releasing the lock inside the function in a balanced way, no +annotation is needed. The tree annotations above are for cases where +sparse would otherwise report a context imbalance. Getting sparse ~~~~~~~~~~~~~~ diff --git a/trunk/Documentation/x86/boot.txt b/trunk/Documentation/x86/boot.txt index f15cb74c4f78..406d82d5d2bb 100644 --- a/trunk/Documentation/x86/boot.txt +++ b/trunk/Documentation/x86/boot.txt @@ -373,7 +373,7 @@ Protocol: 2.00+ 1 Loadlin 2 bootsect-loader (0x20, all other values reserved) 3 Syslinux - 4 Etherboot/gPXE + 4 Etherboot/gPXE/iPXE 5 ELILO 7 GRUB 8 U-Boot @@ -381,6 +381,7 @@ Protocol: 2.00+ A Gujin B Qemu C Arcturus Networks uCbootloader + D kexec-tools E Extended (see ext_loader_type) F Special (0xFF = undefined) 10 Reserved diff --git a/trunk/Documentation/xtensa/atomctl.txt b/trunk/Documentation/xtensa/atomctl.txt new file mode 100644 index 000000000000..10a8d1ff35ec --- /dev/null +++ b/trunk/Documentation/xtensa/atomctl.txt @@ -0,0 +1,44 @@ +We Have Atomic Operation Control (ATOMCTL) Register. +This register determines the effect of using a S32C1I instruction +with various combinations of: + + 1. With and without an Coherent Cache Controller which + can do Atomic Transactions to the memory internally. + + 2. With and without An Intelligent Memory Controller which + can do Atomic Transactions itself. + +The Core comes up with a default value of for the three types of cache ops: + + 0x28: (WB: Internal, WT: Internal, BY:Exception) + +On the FPGA Cards we typically simulate an Intelligent Memory controller +which can implement RCW transactions. For FPGA cards with an External +Memory controller we let it to the atomic operations internally while +doing a Cached (WB) transaction and use the Memory RCW for un-cached +operations. + +For systems without an coherent cache controller, non-MX, we always +use the memory controllers RCW, thought non-MX controlers likely +support the Internal Operation. + +CUSTOMER-WARNING: + Virtually all customers buy their memory controllers from vendors that + don't support atomic RCW memory transactions and will likely want to + configure this register to not use RCW. + +Developers might find using RCW in Bypass mode convenient when testing +with the cache being bypassed; for example studying cache alias problems. + +See Section 4.3.12.4 of ISA; Bits: + + WB WT BY + 5 4 | 3 2 | 1 0 + 2 Bit + Field + Values WB - Write Back WT - Write Thru BY - Bypass +--------- --------------- ----------------- ---------------- + 0 Exception Exception Exception + 1 RCW Transaction RCW Transaction RCW Transaction + 2 Internal Operation Exception Reserved + 3 Reserved Reserved Reserved diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index f71d2f901a69..4e2a1f67a1fc 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -1280,7 +1280,7 @@ F: Documentation/hwmon/asc7621 F: drivers/hwmon/asc7621.c ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS -M: Corentin Chary +M: Corentin Chary L: acpi4asus-user@lists.sourceforge.net L: platform-driver-x86@vger.kernel.org W: http://acpi4asus.sf.net @@ -1929,7 +1929,7 @@ F: scripts/checkpatch.pl CHINESE DOCUMENTATION M: Harry Wei -L: xiyoulinuxkernelgroup@googlegroups.com +L: xiyoulinuxkernelgroup@googlegroups.com (subscribers-only) L: linux-kernel@zh-kernel.org (moderated for non-subscribers) S: Maintained F: Documentation/zh_CN/ @@ -2549,6 +2549,15 @@ S: Supported F: drivers/gpu/drm/exynos F: include/drm/exynos* +DRM DRIVERS FOR NVIDIA TEGRA +M: Thierry Reding +L: dri-devel@lists.freedesktop.org +L: linux-tegra@vger.kernel.org +T: git git://gitorious.org/thierryreding/linux.git +S: Maintained +F: drivers/gpu/drm/tegra/ +F: Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt + DSCC4 DRIVER M: Francois Romieu L: netdev@vger.kernel.org @@ -2973,7 +2982,6 @@ L: linux-ext4@vger.kernel.org S: Maintained F: Documentation/filesystems/ext3.txt F: fs/ext3/ -F: include/linux/ext3* EXT4 FILE SYSTEM M: "Theodore Ts'o" @@ -3120,7 +3128,8 @@ W: http://ieee1394.wiki.kernel.org/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394.git S: Maintained F: drivers/firewire/ -F: include/linux/firewire*.h +F: include/linux/firewire.h +F: include/uapi/linux/firewire*.h F: tools/firewire/ FIRMWARE LOADER (request_firmware) @@ -3712,7 +3721,7 @@ I2C/SMBUS STUB DRIVER M: "Mark M. Hoffman" L: linux-i2c@vger.kernel.org S: Maintained -F: drivers/i2c/busses/i2c-stub.c +F: drivers/i2c/i2c-stub.c I2C SUBSYSTEM M: Wolfram Sang @@ -4305,7 +4314,6 @@ M: Jan Kara L: linux-ext4@vger.kernel.org S: Maintained F: fs/jbd/ -F: include/linux/ext3_jbd.h F: include/linux/jbd.h JOURNALLING LAYER FOR BLOCK DEVICES (JBD2) @@ -6483,7 +6491,7 @@ F: drivers/media/pci/saa7146/ F: include/media/saa7146* SAMSUNG LAPTOP DRIVER -M: Corentin Chary +M: Corentin Chary L: platform-driver-x86@vger.kernel.org S: Maintained F: drivers/platform/x86/samsung-laptop.c @@ -7537,6 +7545,13 @@ S: Maintained F: sound/soc/codecs/lm49453* F: sound/soc/codecs/isabelle* +TI LP855x BACKLIGHT DRIVER +M: Milo Kim +S: Maintained +F: Documentation/backlight/lp855x-driver.txt +F: drivers/video/backlight/lp855x_bl.c +F: include/linux/platform_data/lp855x.h + TI TWL4030 SERIES SOC CODEC DRIVER M: Peter Ujfalusi L: alsa-devel@alsa-project.org (moderated for non-subscribers) diff --git a/trunk/Makefile b/trunk/Makefile index 540f7b240c77..4fe05595b2da 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -124,7 +124,7 @@ $(if $(KBUILD_OUTPUT),, \ PHONY += $(MAKECMDGOALS) sub-make $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make - $(Q)@: + @: sub-make: FORCE $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \ @@ -981,6 +981,12 @@ _modinst_post: _modinst_ $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modinst $(call cmd,depmod) +ifeq ($(CONFIG_MODULE_SIG), y) +PHONY += modules_sign +modules_sign: + $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modsign +endif + else # CONFIG_MODULES # Modules not configured @@ -1021,11 +1027,14 @@ clean: rm-dirs := $(CLEAN_DIRS) clean: rm-files := $(CLEAN_FILES) clean-dirs := $(addprefix _clean_, . $(vmlinux-alldirs) Documentation samples) -PHONY += $(clean-dirs) clean archclean +PHONY += $(clean-dirs) clean archclean vmlinuxclean $(clean-dirs): $(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@) -clean: archclean +vmlinuxclean: + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean + +clean: archclean vmlinuxclean # mrproper - Delete all generated files, including .config # @@ -1252,7 +1261,6 @@ scripts: ; endif # KBUILD_EXTMOD clean: $(clean-dirs) - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean $(call cmd,rmdirs) $(call cmd,rmfiles) @find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \ diff --git a/trunk/arch/Kconfig b/trunk/arch/Kconfig index 34884faf98cd..7f8f281f2585 100644 --- a/trunk/arch/Kconfig +++ b/trunk/arch/Kconfig @@ -80,6 +80,7 @@ config UPROBES bool "Transparent user-space probes (EXPERIMENTAL)" depends on UPROBE_EVENT && PERF_EVENTS default n + select PERCPU_RWSEM help Uprobes is the user-space counterpart to kprobes: they enable instrumentation applications (such as 'perf probe') @@ -112,6 +113,25 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS See Documentation/unaligned-memory-access.txt for more information on the topic of unaligned memory accesses. +config ARCH_USE_BUILTIN_BSWAP + bool + help + Modern versions of GCC (since 4.4) have builtin functions + for handling byte-swapping. Using these, instead of the old + inline assembler that the architecture code provides in the + __arch_bswapXX() macros, allows the compiler to see what's + happening and offers more opportunity for optimisation. In + particular, the compiler will be able to combine the byteswap + with a nearby load or store and use load-and-swap or + store-and-swap instructions if the architecture has them. It + should almost *never* result in code which is worse than the + hand-coded assembler in . But just in case it + does, the use of the builtins is optional. + + Any architecture with load-and-swap or store-and-swap + instructions should set this. And it shouldn't hurt to set it + on architectures that don't have such instructions. + config HAVE_SYSCALL_WRAPPERS bool @@ -271,12 +291,6 @@ config ARCH_WANT_OLD_COMPAT_IPC select ARCH_WANT_COMPAT_IPC_PARSE_VERSION bool -config GENERIC_KERNEL_THREAD - bool - -config GENERIC_KERNEL_EXECVE - bool - config HAVE_ARCH_SECCOMP_FILTER bool help @@ -342,6 +356,9 @@ config MODULES_USE_ELF_REL Modules only use ELF REL relocations. Modules with ELF RELA relocations will give an error. +config GENERIC_SIGALTSTACK + bool + # # ABI hall of shame # diff --git a/trunk/arch/alpha/Kconfig b/trunk/arch/alpha/Kconfig index 5dd7f5db24d4..9d5904cc7712 100644 --- a/trunk/arch/alpha/Kconfig +++ b/trunk/arch/alpha/Kconfig @@ -20,10 +20,9 @@ config ALPHA select GENERIC_CMOS_UPDATE select GENERIC_STRNCPY_FROM_USER select GENERIC_STRNLEN_USER - select GENERIC_KERNEL_THREAD - select GENERIC_KERNEL_EXECVE select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA + select GENERIC_SIGALTSTACK help The Alpha is a 64-bit general-purpose processor designed and marketed by the Digital Equipment Corporation of blessed memory, diff --git a/trunk/arch/alpha/include/asm/Kbuild b/trunk/arch/alpha/include/asm/Kbuild index dcfabb9f05a0..a6e85f448c1c 100644 --- a/trunk/arch/alpha/include/asm/Kbuild +++ b/trunk/arch/alpha/include/asm/Kbuild @@ -1,14 +1,5 @@ -include include/asm-generic/Kbuild.asm generic-y += clkdev.h -header-y += compiler.h -header-y += console.h -header-y += fpu.h -header-y += gentrap.h -header-y += pal.h -header-y += reg.h -header-y += regdef.h -header-y += sysinfo.h generic-y += exec.h generic-y += trace_clock.h diff --git a/trunk/arch/alpha/include/asm/a.out.h b/trunk/arch/alpha/include/asm/a.out.h index acdc681231cb..9abbd2455306 100644 --- a/trunk/arch/alpha/include/asm/a.out.h +++ b/trunk/arch/alpha/include/asm/a.out.h @@ -1,94 +1,8 @@ #ifndef __ALPHA_A_OUT_H__ #define __ALPHA_A_OUT_H__ -#include +#include -/* - * OSF/1 ECOFF header structs. ECOFF files consist of: - * - a file header (struct filehdr), - * - an a.out header (struct aouthdr), - * - one or more section headers (struct scnhdr). - * The filhdr's "f_nscns" field contains the - * number of section headers. - */ - -struct filehdr -{ - /* OSF/1 "file" header */ - __u16 f_magic, f_nscns; - __u32 f_timdat; - __u64 f_symptr; - __u32 f_nsyms; - __u16 f_opthdr, f_flags; -}; - -struct aouthdr -{ - __u64 info; /* after that it looks quite normal.. */ - __u64 tsize; - __u64 dsize; - __u64 bsize; - __u64 entry; - __u64 text_start; /* with a few additions that actually make sense */ - __u64 data_start; - __u64 bss_start; - __u32 gprmask, fprmask; /* bitmask of general & floating point regs used in binary */ - __u64 gpvalue; -}; - -struct scnhdr -{ - char s_name[8]; - __u64 s_paddr; - __u64 s_vaddr; - __u64 s_size; - __u64 s_scnptr; - __u64 s_relptr; - __u64 s_lnnoptr; - __u16 s_nreloc; - __u16 s_nlnno; - __u32 s_flags; -}; - -struct exec -{ - /* OSF/1 "file" header */ - struct filehdr fh; - struct aouthdr ah; -}; - -/* - * Define's so that the kernel exec code can access the a.out header - * fields... - */ -#define a_info ah.info -#define a_text ah.tsize -#define a_data ah.dsize -#define a_bss ah.bsize -#define a_entry ah.entry -#define a_textstart ah.text_start -#define a_datastart ah.data_start -#define a_bssstart ah.bss_start -#define a_gprmask ah.gprmask -#define a_fprmask ah.fprmask -#define a_gpvalue ah.gpvalue - -#define N_TXTADDR(x) ((x).a_textstart) -#define N_DATADDR(x) ((x).a_datastart) -#define N_BSSADDR(x) ((x).a_bssstart) -#define N_DRSIZE(x) 0 -#define N_TRSIZE(x) 0 -#define N_SYMSIZE(x) 0 - -#define AOUTHSZ sizeof(struct aouthdr) -#define SCNHSZ sizeof(struct scnhdr) -#define SCNROUND 16 - -#define N_TXTOFF(x) \ - ((long) N_MAGIC(x) == ZMAGIC ? 0 : \ - (sizeof(struct exec) + (x).fh.f_nscns*SCNHSZ + SCNROUND - 1) & ~(SCNROUND - 1)) - -#ifdef __KERNEL__ /* Assume that start addresses below 4G belong to a TASO application. Unfortunately, there is no proper bit in the exec header to check. @@ -98,5 +12,4 @@ struct exec set_personality (((BFPM->taso || EX.ah.entry < 0x100000000L \ ? ADDR_LIMIT_32BIT : 0) | PER_OSF4)) -#endif /* __KERNEL__ */ #endif /* __A_OUT_GNU_H__ */ diff --git a/trunk/arch/alpha/include/asm/compiler.h b/trunk/arch/alpha/include/asm/compiler.h index da6bb199839c..a7720b96bcc9 100644 --- a/trunk/arch/alpha/include/asm/compiler.h +++ b/trunk/arch/alpha/include/asm/compiler.h @@ -1,119 +1,8 @@ #ifndef __ALPHA_COMPILER_H #define __ALPHA_COMPILER_H -/* - * Herein are macros we use when describing various patterns we want to GCC. - * In all cases we can get better schedules out of the compiler if we hide - * as little as possible inside inline assembly. However, we want to be - * able to know what we'll get out before giving up inline assembly. Thus - * these tests and macros. - */ +#include -#if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 -# define __kernel_insbl(val, shift) __builtin_alpha_insbl(val, shift) -# define __kernel_inswl(val, shift) __builtin_alpha_inswl(val, shift) -# define __kernel_insql(val, shift) __builtin_alpha_insql(val, shift) -# define __kernel_inslh(val, shift) __builtin_alpha_inslh(val, shift) -# define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) -# define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) -# define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) -#else -# define __kernel_insbl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("insbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_inswl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("inswl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_insql(val, shift) \ - ({ unsigned long __kir; \ - __asm__("insql %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_inslh(val, shift) \ - ({ unsigned long __kir; \ - __asm__("inslh %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_extbl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("extbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_extwl(val, shift) \ - ({ unsigned long __kir; \ - __asm__("extwl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ - __kir; }) -# define __kernel_cmpbge(a, b) \ - ({ unsigned long __kir; \ - __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ - __kir; }) -#endif - -#ifdef __alpha_cix__ -# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 -# define __kernel_cttz(x) __builtin_ctzl(x) -# define __kernel_ctlz(x) __builtin_clzl(x) -# define __kernel_ctpop(x) __builtin_popcountl(x) -# else -# define __kernel_cttz(x) \ - ({ unsigned long __kir; \ - __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctlz(x) \ - ({ unsigned long __kir; \ - __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctpop(x) \ - ({ unsigned long __kir; \ - __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# endif -#else -# define __kernel_cttz(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctlz(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -# define __kernel_ctpop(x) \ - ({ unsigned long __kir; \ - __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ - __kir; }) -#endif - - -/* - * Beginning with EGCS 1.1, GCC defines __alpha_bwx__ when the BWX - * extension is enabled. Previous versions did not define anything - * we could test during compilation -- too bad, so sad. - */ - -#if defined(__alpha_bwx__) -#define __kernel_ldbu(mem) (mem) -#define __kernel_ldwu(mem) (mem) -#define __kernel_stb(val,mem) ((mem) = (val)) -#define __kernel_stw(val,mem) ((mem) = (val)) -#else -#define __kernel_ldbu(mem) \ - ({ unsigned char __kir; \ - __asm__(".arch ev56; \ - ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ - __kir; }) -#define __kernel_ldwu(mem) \ - ({ unsigned short __kir; \ - __asm__(".arch ev56; \ - ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ - __kir; }) -#define __kernel_stb(val,mem) \ - __asm__(".arch ev56; \ - stb %1,%0" : "=m"(mem) : "r"(val)) -#define __kernel_stw(val,mem) \ - __asm__(".arch ev56; \ - stw %1,%0" : "=m"(mem) : "r"(val)) -#endif - -#ifdef __KERNEL__ /* Some idiots over in thought inline should imply always_inline. This breaks stuff. We'll include this file whenever we run into such problems. */ @@ -125,6 +14,4 @@ #undef __always_inline #define __always_inline inline __attribute__((always_inline)) -#endif /* __KERNEL__ */ - #endif /* __ALPHA_COMPILER_H */ diff --git a/trunk/arch/alpha/include/asm/console.h b/trunk/arch/alpha/include/asm/console.h index a3ce4e62249b..f2b584fe0994 100644 --- a/trunk/arch/alpha/include/asm/console.h +++ b/trunk/arch/alpha/include/asm/console.h @@ -1,52 +1,8 @@ #ifndef __AXP_CONSOLE_H #define __AXP_CONSOLE_H -/* - * Console callback routine numbers - */ -#define CCB_GETC 0x01 -#define CCB_PUTS 0x02 -#define CCB_RESET_TERM 0x03 -#define CCB_SET_TERM_INT 0x04 -#define CCB_SET_TERM_CTL 0x05 -#define CCB_PROCESS_KEYCODE 0x06 -#define CCB_OPEN_CONSOLE 0x07 -#define CCB_CLOSE_CONSOLE 0x08 +#include -#define CCB_OPEN 0x10 -#define CCB_CLOSE 0x11 -#define CCB_IOCTL 0x12 -#define CCB_READ 0x13 -#define CCB_WRITE 0x14 - -#define CCB_SET_ENV 0x20 -#define CCB_RESET_ENV 0x21 -#define CCB_GET_ENV 0x22 -#define CCB_SAVE_ENV 0x23 - -#define CCB_PSWITCH 0x30 -#define CCB_BIOS_EMUL 0x32 - -/* - * Environment variable numbers - */ -#define ENV_AUTO_ACTION 0x01 -#define ENV_BOOT_DEV 0x02 -#define ENV_BOOTDEF_DEV 0x03 -#define ENV_BOOTED_DEV 0x04 -#define ENV_BOOT_FILE 0x05 -#define ENV_BOOTED_FILE 0x06 -#define ENV_BOOT_OSFLAGS 0x07 -#define ENV_BOOTED_OSFLAGS 0x08 -#define ENV_BOOT_RESET 0x09 -#define ENV_DUMP_DEV 0x0A -#define ENV_ENABLE_AUDIT 0x0B -#define ENV_LICENSE 0x0C -#define ENV_CHAR_SET 0x0D -#define ENV_LANGUAGE 0x0E -#define ENV_TTY_DEV 0x0F - -#ifdef __KERNEL__ #ifndef __ASSEMBLY__ extern long callback_puts(long unit, const char *s, long length); extern long callback_getc(long unit); @@ -70,6 +26,4 @@ struct hwrpb_struct; extern int callback_init_done; extern void * callback_init(void *); #endif /* __ASSEMBLY__ */ -#endif /* __KERNEL__ */ - #endif /* __AXP_CONSOLE_H */ diff --git a/trunk/arch/alpha/include/asm/fpu.h b/trunk/arch/alpha/include/asm/fpu.h index e477bcd5b94a..71c20956b905 100644 --- a/trunk/arch/alpha/include/asm/fpu.h +++ b/trunk/arch/alpha/include/asm/fpu.h @@ -1,128 +1,8 @@ #ifndef __ASM_ALPHA_FPU_H #define __ASM_ALPHA_FPU_H -#ifdef __KERNEL__ #include -#endif - -/* - * Alpha floating-point control register defines: - */ -#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ -#define FPCR_DNZ (1UL<<48) /* denorms to zero */ -#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ -#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ -#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ -#define FPCR_INV (1UL<<52) /* invalid operation */ -#define FPCR_DZE (1UL<<53) /* division by zero */ -#define FPCR_OVF (1UL<<54) /* overflow */ -#define FPCR_UNF (1UL<<55) /* underflow */ -#define FPCR_INE (1UL<<56) /* inexact */ -#define FPCR_IOV (1UL<<57) /* integer overflow */ -#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ -#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ -#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ -#define FPCR_SUM (1UL<<63) /* summary bit */ - -#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ -#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ -#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ -#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ -#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ -#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) - -#define FPCR_MASK 0xffff800000000000L - -/* - * IEEE trap enables are implemented in software. These per-thread - * bits are stored in the "ieee_state" field of "struct thread_info". - * Thus, the bits are defined so as not to conflict with the - * floating-point enable bit (which is architected). On top of that, - * we want to make these bits compatible with OSF/1 so - * ieee_set_fp_control() etc. can be implemented easily and - * compatibly. The corresponding definitions are in - * /usr/include/machine/fpu.h under OSF/1. - */ -#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ -#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ -#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ -#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ -#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ -#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ -#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ - IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ - IEEE_TRAP_ENABLE_INE | IEEE_TRAP_ENABLE_DNO) - -/* Denorm and Underflow flushing */ -#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ -#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ - -#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) - -/* status bits coming from fpcr: */ -#define IEEE_STATUS_INV (1UL<<17) -#define IEEE_STATUS_DZE (1UL<<18) -#define IEEE_STATUS_OVF (1UL<<19) -#define IEEE_STATUS_UNF (1UL<<20) -#define IEEE_STATUS_INE (1UL<<21) -#define IEEE_STATUS_DNO (1UL<<22) - -#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ - IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ - IEEE_STATUS_INE | IEEE_STATUS_DNO) - -#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ - IEEE_STATUS_MASK | IEEE_MAP_MASK) - -#define IEEE_CURRENT_RM_SHIFT 32 -#define IEEE_CURRENT_RM_MASK (3UL<> 35) & IEEE_STATUS_MASK; - sw |= (fp >> 36) & IEEE_MAP_DMZ; - sw |= (~fp >> 48) & (IEEE_TRAP_ENABLE_INV - | IEEE_TRAP_ENABLE_DZE - | IEEE_TRAP_ENABLE_OVF); - sw |= (~fp >> 57) & (IEEE_TRAP_ENABLE_UNF | IEEE_TRAP_ENABLE_INE); - sw |= (fp >> 47) & IEEE_MAP_UMZ; - sw |= (~fp >> 41) & IEEE_TRAP_ENABLE_DNO; - return sw; -} - -#ifdef __KERNEL__ +#include /* The following two functions don't need trapb/excb instructions around the mf_fpcr/mt_fpcr instructions because (a) the kernel @@ -192,6 +72,4 @@ extern void alpha_write_fp_reg (unsigned long reg, unsigned long val); extern unsigned long alpha_read_fp_reg_s (unsigned long reg); extern void alpha_write_fp_reg_s (unsigned long reg, unsigned long val); -#endif /* __KERNEL__ */ - #endif /* __ASM_ALPHA_FPU_H */ diff --git a/trunk/arch/alpha/include/asm/pal.h b/trunk/arch/alpha/include/asm/pal.h index 6699ee583429..6fcd2b5b08f0 100644 --- a/trunk/arch/alpha/include/asm/pal.h +++ b/trunk/arch/alpha/include/asm/pal.h @@ -1,54 +1,8 @@ #ifndef __ALPHA_PAL_H #define __ALPHA_PAL_H -/* - * Common PAL-code - */ -#define PAL_halt 0 -#define PAL_cflush 1 -#define PAL_draina 2 -#define PAL_bpt 128 -#define PAL_bugchk 129 -#define PAL_chmk 131 -#define PAL_callsys 131 -#define PAL_imb 134 -#define PAL_rduniq 158 -#define PAL_wruniq 159 -#define PAL_gentrap 170 -#define PAL_nphalt 190 - -/* - * VMS specific PAL-code - */ -#define PAL_swppal 10 -#define PAL_mfpr_vptb 41 +#include -/* - * OSF specific PAL-code - */ -#define PAL_cserve 9 -#define PAL_wripir 13 -#define PAL_rdmces 16 -#define PAL_wrmces 17 -#define PAL_wrfen 43 -#define PAL_wrvptptr 45 -#define PAL_jtopal 46 -#define PAL_swpctx 48 -#define PAL_wrval 49 -#define PAL_rdval 50 -#define PAL_tbi 51 -#define PAL_wrent 52 -#define PAL_swpipl 53 -#define PAL_rdps 54 -#define PAL_wrkgp 55 -#define PAL_wrusp 56 -#define PAL_wrperfmon 57 -#define PAL_rdusp 58 -#define PAL_whami 60 -#define PAL_retsys 61 -#define PAL_rti 63 - -#ifdef __KERNEL__ #ifndef __ASSEMBLY__ extern void halt(void) __attribute__((noreturn)); @@ -158,6 +112,4 @@ __CALL_PAL_W1(wrvptptr, unsigned long); #define tbia() __tbi(-2, /* no second argument */) #endif /* !__ASSEMBLY__ */ -#endif /* __KERNEL__ */ - #endif /* __ALPHA_PAL_H */ diff --git a/trunk/arch/alpha/include/asm/param.h b/trunk/arch/alpha/include/asm/param.h index e691ecfedb2c..bf46af51941b 100644 --- a/trunk/arch/alpha/include/asm/param.h +++ b/trunk/arch/alpha/include/asm/param.h @@ -1,27 +1,9 @@ #ifndef _ASM_ALPHA_PARAM_H #define _ASM_ALPHA_PARAM_H -/* ??? Gross. I don't want to parameterize this, and supposedly the - hardware ignores reprogramming. We also need userland buy-in to the - change in HZ, since this is visible in the wait4 resources etc. */ +#include -#ifdef __KERNEL__ #define HZ CONFIG_HZ #define USER_HZ HZ -#else -#define HZ 1024 -#endif - -#define EXEC_PAGESIZE 8192 - -#ifndef NOGROUP -#define NOGROUP (-1) -#endif - -#define MAXHOSTNAMELEN 64 /* max length of hostname */ - -#ifdef __KERNEL__ # define CLOCKS_PER_SEC HZ /* frequency at which times() counts */ -#endif - #endif /* _ASM_ALPHA_PARAM_H */ diff --git a/trunk/arch/alpha/include/asm/ptrace.h b/trunk/arch/alpha/include/asm/ptrace.h index b4c5b2fbb647..21128505ddbe 100644 --- a/trunk/arch/alpha/include/asm/ptrace.h +++ b/trunk/arch/alpha/include/asm/ptrace.h @@ -1,77 +1,14 @@ #ifndef _ASMAXP_PTRACE_H #define _ASMAXP_PTRACE_H +#include -/* - * This struct defines the way the registers are stored on the - * kernel stack during a system call or other kernel entry - * - * NOTE! I want to minimize the overhead of system calls, so this - * struct has as little information as possible. I does not have - * - * - floating point regs: the kernel doesn't change those - * - r9-15: saved by the C compiler - * - * This makes "fork()" and "exec()" a bit more complex, but should - * give us low system call latency. - */ - -struct pt_regs { - unsigned long r0; - unsigned long r1; - unsigned long r2; - unsigned long r3; - unsigned long r4; - unsigned long r5; - unsigned long r6; - unsigned long r7; - unsigned long r8; - unsigned long r19; - unsigned long r20; - unsigned long r21; - unsigned long r22; - unsigned long r23; - unsigned long r24; - unsigned long r25; - unsigned long r26; - unsigned long r27; - unsigned long r28; - unsigned long hae; -/* JRP - These are the values provided to a0-a2 by PALcode */ - unsigned long trap_a0; - unsigned long trap_a1; - unsigned long trap_a2; -/* These are saved by PAL-code: */ - unsigned long ps; - unsigned long pc; - unsigned long gp; - unsigned long r16; - unsigned long r17; - unsigned long r18; -}; - -/* - * This is the extended stack used by signal handlers and the context - * switcher: it's pushed after the normal "struct pt_regs". - */ -struct switch_stack { - unsigned long r9; - unsigned long r10; - unsigned long r11; - unsigned long r12; - unsigned long r13; - unsigned long r14; - unsigned long r15; - unsigned long r26; - unsigned long fp[32]; /* fp[31] is fpcr */ -}; - -#ifdef __KERNEL__ #define arch_has_single_step() (1) #define user_mode(regs) (((regs)->ps & 8) != 0) #define instruction_pointer(regs) ((regs)->pc) #define profile_pc(regs) instruction_pointer(regs) +#define current_user_stack_pointer() rdusp() #define task_pt_regs(task) \ ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) @@ -83,5 +20,3 @@ struct switch_stack { #define force_successful_syscall_return() (current_pt_regs()->r0 = 0) #endif - -#endif diff --git a/trunk/arch/alpha/include/asm/signal.h b/trunk/arch/alpha/include/asm/signal.h index 45552862cc10..8a1ac28cd562 100644 --- a/trunk/arch/alpha/include/asm/signal.h +++ b/trunk/arch/alpha/include/asm/signal.h @@ -1,12 +1,8 @@ #ifndef _ASMAXP_SIGNAL_H #define _ASMAXP_SIGNAL_H -#include +#include -/* Avoid too many header ordering problems. */ -struct siginfo; - -#ifdef __KERNEL__ /* Digital Unix defines 64 signals. Most things should be clean enough to redefine this at will, if care is taken to make libc match. */ @@ -20,100 +16,6 @@ typedef struct { unsigned long sig[_NSIG_WORDS]; } sigset_t; -#else -/* Here we must cater to libcs that poke about in kernel headers. */ - -#define NSIG 32 -typedef unsigned long sigset_t; - -#endif /* __KERNEL__ */ - - -/* - * Linux/AXP has different signal numbers that Linux/i386: I'm trying - * to make it OSF/1 binary compatible, at least for normal binaries. - */ -#define SIGHUP 1 -#define SIGINT 2 -#define SIGQUIT 3 -#define SIGILL 4 -#define SIGTRAP 5 -#define SIGABRT 6 -#define SIGEMT 7 -#define SIGFPE 8 -#define SIGKILL 9 -#define SIGBUS 10 -#define SIGSEGV 11 -#define SIGSYS 12 -#define SIGPIPE 13 -#define SIGALRM 14 -#define SIGTERM 15 -#define SIGURG 16 -#define SIGSTOP 17 -#define SIGTSTP 18 -#define SIGCONT 19 -#define SIGCHLD 20 -#define SIGTTIN 21 -#define SIGTTOU 22 -#define SIGIO 23 -#define SIGXCPU 24 -#define SIGXFSZ 25 -#define SIGVTALRM 26 -#define SIGPROF 27 -#define SIGWINCH 28 -#define SIGINFO 29 -#define SIGUSR1 30 -#define SIGUSR2 31 - -#define SIGPOLL SIGIO -#define SIGPWR SIGINFO -#define SIGIOT SIGABRT - -/* These should not be considered constants from userland. */ -#define SIGRTMIN 32 -#define SIGRTMAX _NSIG - -/* - * SA_FLAGS values: - * - * SA_ONSTACK indicates that a registered stack_t will be used. - * SA_RESTART flag to get restarting signals (which were the default long ago) - * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. - * SA_RESETHAND clears the handler when the signal is delivered. - * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. - * SA_NODEFER prevents the current signal from being masked in the handler. - * - * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single - * Unix names RESETHAND and NODEFER respectively. - */ - -#define SA_ONSTACK 0x00000001 -#define SA_RESTART 0x00000002 -#define SA_NOCLDSTOP 0x00000004 -#define SA_NODEFER 0x00000008 -#define SA_RESETHAND 0x00000010 -#define SA_NOCLDWAIT 0x00000020 -#define SA_SIGINFO 0x00000040 - -#define SA_ONESHOT SA_RESETHAND -#define SA_NOMASK SA_NODEFER - -/* - * sigaltstack controls - */ -#define SS_ONSTACK 1 -#define SS_DISABLE 2 - -#define MINSIGSTKSZ 4096 -#define SIGSTKSZ 16384 - -#define SIG_BLOCK 1 /* for blocking signals */ -#define SIG_UNBLOCK 2 /* for unblocking signals */ -#define SIG_SETMASK 3 /* for setting the signal mask */ - -#include - -#ifdef __KERNEL__ struct osf_sigaction { __sighandler_t sa_handler; old_sigset_t sa_mask; @@ -130,40 +32,5 @@ struct k_sigaction { struct sigaction sa; __sigrestore_t ka_restorer; }; -#else -/* Here we must cater to libcs that poke about in kernel headers. */ - -struct sigaction { - union { - __sighandler_t _sa_handler; - void (*_sa_sigaction)(int, struct siginfo *, void *); - } _u; - sigset_t sa_mask; - int sa_flags; -}; - -#define sa_handler _u._sa_handler -#define sa_sigaction _u._sa_sigaction - -#endif /* __KERNEL__ */ - -typedef struct sigaltstack { - void __user *ss_sp; - int ss_flags; - size_t ss_size; -} stack_t; - -/* sigstack(2) is deprecated, and will be withdrawn in a future version - of the X/Open CAE Specification. Use sigaltstack instead. It is only - implemented here for OSF/1 compatibility. */ - -struct sigstack { - void __user *ss_sp; - int ss_onstack; -}; - -#ifdef __KERNEL__ #include #endif - -#endif diff --git a/trunk/arch/alpha/include/asm/socket.h b/trunk/arch/alpha/include/asm/socket.h index 0087d053b77f..8d806d80ed24 100644 --- a/trunk/arch/alpha/include/asm/socket.h +++ b/trunk/arch/alpha/include/asm/socket.h @@ -1,87 +1,10 @@ #ifndef _ASM_SOCKET_H #define _ASM_SOCKET_H -#include +#include -/* For setsockopt(2) */ -/* - * Note: we only bother about making the SOL_SOCKET options - * same as OSF/1, as that's all that "normal" programs are - * likely to set. We don't necessarily want to be binary - * compatible with _everything_. - */ -#define SOL_SOCKET 0xffff - -#define SO_DEBUG 0x0001 -#define SO_REUSEADDR 0x0004 -#define SO_KEEPALIVE 0x0008 -#define SO_DONTROUTE 0x0010 -#define SO_BROADCAST 0x0020 -#define SO_LINGER 0x0080 -#define SO_OOBINLINE 0x0100 -/* To add :#define SO_REUSEPORT 0x0200 */ - -#define SO_TYPE 0x1008 -#define SO_ERROR 0x1007 -#define SO_SNDBUF 0x1001 -#define SO_RCVBUF 0x1002 -#define SO_SNDBUFFORCE 0x100a -#define SO_RCVBUFFORCE 0x100b -#define SO_RCVLOWAT 0x1010 -#define SO_SNDLOWAT 0x1011 -#define SO_RCVTIMEO 0x1012 -#define SO_SNDTIMEO 0x1013 -#define SO_ACCEPTCONN 0x1014 -#define SO_PROTOCOL 0x1028 -#define SO_DOMAIN 0x1029 - -/* linux-specific, might as well be the same as on i386 */ -#define SO_NO_CHECK 11 -#define SO_PRIORITY 12 -#define SO_BSDCOMPAT 14 - -#define SO_PASSCRED 17 -#define SO_PEERCRED 18 -#define SO_BINDTODEVICE 25 - -/* Socket filtering */ -#define SO_ATTACH_FILTER 26 -#define SO_DETACH_FILTER 27 -#define SO_GET_FILTER SO_ATTACH_FILTER - -#define SO_PEERNAME 28 -#define SO_TIMESTAMP 29 -#define SCM_TIMESTAMP SO_TIMESTAMP - -#define SO_PEERSEC 30 -#define SO_PASSSEC 34 -#define SO_TIMESTAMPNS 35 -#define SCM_TIMESTAMPNS SO_TIMESTAMPNS - -/* Security levels - as per NRL IPv6 - don't actually do anything */ -#define SO_SECURITY_AUTHENTICATION 19 -#define SO_SECURITY_ENCRYPTION_TRANSPORT 20 -#define SO_SECURITY_ENCRYPTION_NETWORK 21 - -#define SO_MARK 36 - -#define SO_TIMESTAMPING 37 -#define SCM_TIMESTAMPING SO_TIMESTAMPING - -#define SO_RXQ_OVFL 40 - -#define SO_WIFI_STATUS 41 -#define SCM_WIFI_STATUS SO_WIFI_STATUS -#define SO_PEEK_OFF 42 - -/* Instruct lower device to use last 4-bytes of skb data as FCS */ -#define SO_NOFCS 43 - -#ifdef __KERNEL__ /* O_NONBLOCK clashes with the bits used for socket types. Therefore we * have to define SOCK_NONBLOCK to a different value here. */ #define SOCK_NONBLOCK 0x40000000 -#endif /* __KERNEL__ */ - #endif /* _ASM_SOCKET_H */ diff --git a/trunk/arch/alpha/include/asm/termios.h b/trunk/arch/alpha/include/asm/termios.h index fa13716a11c3..7fde0f88da88 100644 --- a/trunk/arch/alpha/include/asm/termios.h +++ b/trunk/arch/alpha/include/asm/termios.h @@ -1,72 +1,8 @@ #ifndef _ALPHA_TERMIOS_H #define _ALPHA_TERMIOS_H -#include -#include +#include -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -#define NCC 8 -struct termio { - unsigned short c_iflag; /* input mode flags */ - unsigned short c_oflag; /* output mode flags */ - unsigned short c_cflag; /* control mode flags */ - unsigned short c_lflag; /* local mode flags */ - unsigned char c_line; /* line discipline */ - unsigned char c_cc[NCC]; /* control characters */ -}; - -/* - * c_cc characters in the termio structure. Oh, how I love being - * backwardly compatible. Notice that character 4 and 5 are - * interpreted differently depending on whether ICANON is set in - * c_lflag. If it's set, they are used as _VEOF and _VEOL, otherwise - * as _VMIN and V_TIME. This is for compatibility with OSF/1 (which - * is compatible with sysV)... - */ -#define _VINTR 0 -#define _VQUIT 1 -#define _VERASE 2 -#define _VKILL 3 -#define _VEOF 4 -#define _VMIN 4 -#define _VEOL 5 -#define _VTIME 5 -#define _VEOL2 6 -#define _VSWTC 7 - -#ifdef __KERNEL__ /* eof=^D eol=\0 eol2=\0 erase=del werase=^W kill=^U reprint=^R sxtc=\0 intr=^C quit=^\ susp=^Z @@ -141,6 +77,4 @@ struct termio { #define kernel_termios_to_user_termios(u, k) \ copy_to_user(u, k, sizeof(struct termios)) -#endif /* __KERNEL__ */ - #endif /* _ALPHA_TERMIOS_H */ diff --git a/trunk/arch/alpha/include/asm/types.h b/trunk/arch/alpha/include/asm/types.h index 0a0579076f4a..f61e1a56c378 100644 --- a/trunk/arch/alpha/include/asm/types.h +++ b/trunk/arch/alpha/include/asm/types.h @@ -1,18 +1,7 @@ #ifndef _ALPHA_TYPES_H #define _ALPHA_TYPES_H -/* - * This file is never included by application software unless - * explicitly requested (e.g., via linux/types.h) in which case the - * application is Linux specific so (user-) name space pollution is - * not a major issue. However, for interoperability, libraries still - * need to be careful to avoid a name clashes. - */ - -#ifdef __KERNEL__ #include -#else -#include -#endif +#include #endif /* _ALPHA_TYPES_H */ diff --git a/trunk/arch/alpha/include/asm/unistd.h b/trunk/arch/alpha/include/asm/unistd.h index eb3a4664ced2..b3396ee039b7 100644 --- a/trunk/arch/alpha/include/asm/unistd.h +++ b/trunk/arch/alpha/include/asm/unistd.h @@ -1,474 +1,8 @@ #ifndef _ALPHA_UNISTD_H #define _ALPHA_UNISTD_H -#define __NR_osf_syscall 0 /* not implemented */ -#define __NR_exit 1 -#define __NR_fork 2 -#define __NR_read 3 -#define __NR_write 4 -#define __NR_osf_old_open 5 /* not implemented */ -#define __NR_close 6 -#define __NR_osf_wait4 7 -#define __NR_osf_old_creat 8 /* not implemented */ -#define __NR_link 9 -#define __NR_unlink 10 -#define __NR_osf_execve 11 /* not implemented */ -#define __NR_chdir 12 -#define __NR_fchdir 13 -#define __NR_mknod 14 -#define __NR_chmod 15 -#define __NR_chown 16 -#define __NR_brk 17 -#define __NR_osf_getfsstat 18 /* not implemented */ -#define __NR_lseek 19 -#define __NR_getxpid 20 -#define __NR_osf_mount 21 -#define __NR_umount 22 -#define __NR_setuid 23 -#define __NR_getxuid 24 -#define __NR_exec_with_loader 25 /* not implemented */ -#define __NR_ptrace 26 -#define __NR_osf_nrecvmsg 27 /* not implemented */ -#define __NR_osf_nsendmsg 28 /* not implemented */ -#define __NR_osf_nrecvfrom 29 /* not implemented */ -#define __NR_osf_naccept 30 /* not implemented */ -#define __NR_osf_ngetpeername 31 /* not implemented */ -#define __NR_osf_ngetsockname 32 /* not implemented */ -#define __NR_access 33 -#define __NR_osf_chflags 34 /* not implemented */ -#define __NR_osf_fchflags 35 /* not implemented */ -#define __NR_sync 36 -#define __NR_kill 37 -#define __NR_osf_old_stat 38 /* not implemented */ -#define __NR_setpgid 39 -#define __NR_osf_old_lstat 40 /* not implemented */ -#define __NR_dup 41 -#define __NR_pipe 42 -#define __NR_osf_set_program_attributes 43 -#define __NR_osf_profil 44 /* not implemented */ -#define __NR_open 45 -#define __NR_osf_old_sigaction 46 /* not implemented */ -#define __NR_getxgid 47 -#define __NR_osf_sigprocmask 48 -#define __NR_osf_getlogin 49 /* not implemented */ -#define __NR_osf_setlogin 50 /* not implemented */ -#define __NR_acct 51 -#define __NR_sigpending 52 +#include -#define __NR_ioctl 54 -#define __NR_osf_reboot 55 /* not implemented */ -#define __NR_osf_revoke 56 /* not implemented */ -#define __NR_symlink 57 -#define __NR_readlink 58 -#define __NR_execve 59 -#define __NR_umask 60 -#define __NR_chroot 61 -#define __NR_osf_old_fstat 62 /* not implemented */ -#define __NR_getpgrp 63 -#define __NR_getpagesize 64 -#define __NR_osf_mremap 65 /* not implemented */ -#define __NR_vfork 66 -#define __NR_stat 67 -#define __NR_lstat 68 -#define __NR_osf_sbrk 69 /* not implemented */ -#define __NR_osf_sstk 70 /* not implemented */ -#define __NR_mmap 71 /* OSF/1 mmap is superset of Linux */ -#define __NR_osf_old_vadvise 72 /* not implemented */ -#define __NR_munmap 73 -#define __NR_mprotect 74 -#define __NR_madvise 75 -#define __NR_vhangup 76 -#define __NR_osf_kmodcall 77 /* not implemented */ -#define __NR_osf_mincore 78 /* not implemented */ -#define __NR_getgroups 79 -#define __NR_setgroups 80 -#define __NR_osf_old_getpgrp 81 /* not implemented */ -#define __NR_setpgrp 82 /* BSD alias for setpgid */ -#define __NR_osf_setitimer 83 -#define __NR_osf_old_wait 84 /* not implemented */ -#define __NR_osf_table 85 /* not implemented */ -#define __NR_osf_getitimer 86 -#define __NR_gethostname 87 -#define __NR_sethostname 88 -#define __NR_getdtablesize 89 -#define __NR_dup2 90 -#define __NR_fstat 91 -#define __NR_fcntl 92 -#define __NR_osf_select 93 -#define __NR_poll 94 -#define __NR_fsync 95 -#define __NR_setpriority 96 -#define __NR_socket 97 -#define __NR_connect 98 -#define __NR_accept 99 -#define __NR_getpriority 100 -#define __NR_send 101 -#define __NR_recv 102 -#define __NR_sigreturn 103 -#define __NR_bind 104 -#define __NR_setsockopt 105 -#define __NR_listen 106 -#define __NR_osf_plock 107 /* not implemented */ -#define __NR_osf_old_sigvec 108 /* not implemented */ -#define __NR_osf_old_sigblock 109 /* not implemented */ -#define __NR_osf_old_sigsetmask 110 /* not implemented */ -#define __NR_sigsuspend 111 -#define __NR_osf_sigstack 112 -#define __NR_recvmsg 113 -#define __NR_sendmsg 114 -#define __NR_osf_old_vtrace 115 /* not implemented */ -#define __NR_osf_gettimeofday 116 -#define __NR_osf_getrusage 117 -#define __NR_getsockopt 118 - -#define __NR_readv 120 -#define __NR_writev 121 -#define __NR_osf_settimeofday 122 -#define __NR_fchown 123 -#define __NR_fchmod 124 -#define __NR_recvfrom 125 -#define __NR_setreuid 126 -#define __NR_setregid 127 -#define __NR_rename 128 -#define __NR_truncate 129 -#define __NR_ftruncate 130 -#define __NR_flock 131 -#define __NR_setgid 132 -#define __NR_sendto 133 -#define __NR_shutdown 134 -#define __NR_socketpair 135 -#define __NR_mkdir 136 -#define __NR_rmdir 137 -#define __NR_osf_utimes 138 -#define __NR_osf_old_sigreturn 139 /* not implemented */ -#define __NR_osf_adjtime 140 /* not implemented */ -#define __NR_getpeername 141 -#define __NR_osf_gethostid 142 /* not implemented */ -#define __NR_osf_sethostid 143 /* not implemented */ -#define __NR_getrlimit 144 -#define __NR_setrlimit 145 -#define __NR_osf_old_killpg 146 /* not implemented */ -#define __NR_setsid 147 -#define __NR_quotactl 148 -#define __NR_osf_oldquota 149 /* not implemented */ -#define __NR_getsockname 150 - -#define __NR_osf_pid_block 153 /* not implemented */ -#define __NR_osf_pid_unblock 154 /* not implemented */ - -#define __NR_sigaction 156 -#define __NR_osf_sigwaitprim 157 /* not implemented */ -#define __NR_osf_nfssvc 158 /* not implemented */ -#define __NR_osf_getdirentries 159 -#define __NR_osf_statfs 160 -#define __NR_osf_fstatfs 161 - -#define __NR_osf_asynch_daemon 163 /* not implemented */ -#define __NR_osf_getfh 164 /* not implemented */ -#define __NR_osf_getdomainname 165 -#define __NR_setdomainname 166 - -#define __NR_osf_exportfs 169 /* not implemented */ - -#define __NR_osf_alt_plock 181 /* not implemented */ - -#define __NR_osf_getmnt 184 /* not implemented */ - -#define __NR_osf_alt_sigpending 187 /* not implemented */ -#define __NR_osf_alt_setsid 188 /* not implemented */ - -#define __NR_osf_swapon 199 -#define __NR_msgctl 200 -#define __NR_msgget 201 -#define __NR_msgrcv 202 -#define __NR_msgsnd 203 -#define __NR_semctl 204 -#define __NR_semget 205 -#define __NR_semop 206 -#define __NR_osf_utsname 207 -#define __NR_lchown 208 -#define __NR_osf_shmat 209 -#define __NR_shmctl 210 -#define __NR_shmdt 211 -#define __NR_shmget 212 -#define __NR_osf_mvalid 213 /* not implemented */ -#define __NR_osf_getaddressconf 214 /* not implemented */ -#define __NR_osf_msleep 215 /* not implemented */ -#define __NR_osf_mwakeup 216 /* not implemented */ -#define __NR_msync 217 -#define __NR_osf_signal 218 /* not implemented */ -#define __NR_osf_utc_gettime 219 /* not implemented */ -#define __NR_osf_utc_adjtime 220 /* not implemented */ - -#define __NR_osf_security 222 /* not implemented */ -#define __NR_osf_kloadcall 223 /* not implemented */ - -#define __NR_osf_stat 224 -#define __NR_osf_lstat 225 -#define __NR_osf_fstat 226 -#define __NR_osf_statfs64 227 -#define __NR_osf_fstatfs64 228 - -#define __NR_getpgid 233 -#define __NR_getsid 234 -#define __NR_sigaltstack 235 -#define __NR_osf_waitid 236 /* not implemented */ -#define __NR_osf_priocntlset 237 /* not implemented */ -#define __NR_osf_sigsendset 238 /* not implemented */ -#define __NR_osf_set_speculative 239 /* not implemented */ -#define __NR_osf_msfs_syscall 240 /* not implemented */ -#define __NR_osf_sysinfo 241 -#define __NR_osf_uadmin 242 /* not implemented */ -#define __NR_osf_fuser 243 /* not implemented */ -#define __NR_osf_proplist_syscall 244 -#define __NR_osf_ntp_adjtime 245 /* not implemented */ -#define __NR_osf_ntp_gettime 246 /* not implemented */ -#define __NR_osf_pathconf 247 /* not implemented */ -#define __NR_osf_fpathconf 248 /* not implemented */ - -#define __NR_osf_uswitch 250 /* not implemented */ -#define __NR_osf_usleep_thread 251 -#define __NR_osf_audcntl 252 /* not implemented */ -#define __NR_osf_audgen 253 /* not implemented */ -#define __NR_sysfs 254 -#define __NR_osf_subsys_info 255 /* not implemented */ -#define __NR_osf_getsysinfo 256 -#define __NR_osf_setsysinfo 257 -#define __NR_osf_afs_syscall 258 /* not implemented */ -#define __NR_osf_swapctl 259 /* not implemented */ -#define __NR_osf_memcntl 260 /* not implemented */ -#define __NR_osf_fdatasync 261 /* not implemented */ - -/* - * Ignore legacy syscalls that we don't use. - */ -#define __IGNORE_alarm -#define __IGNORE_creat -#define __IGNORE_getegid -#define __IGNORE_geteuid -#define __IGNORE_getgid -#define __IGNORE_getpid -#define __IGNORE_getppid -#define __IGNORE_getuid -#define __IGNORE_pause -#define __IGNORE_time -#define __IGNORE_utime -#define __IGNORE_umount2 - -/* - * Linux-specific system calls begin at 300 - */ -#define __NR_bdflush 300 -#define __NR_sethae 301 -#define __NR_mount 302 -#define __NR_old_adjtimex 303 -#define __NR_swapoff 304 -#define __NR_getdents 305 -#define __NR_create_module 306 -#define __NR_init_module 307 -#define __NR_delete_module 308 -#define __NR_get_kernel_syms 309 -#define __NR_syslog 310 -#define __NR_reboot 311 -#define __NR_clone 312 -#define __NR_uselib 313 -#define __NR_mlock 314 -#define __NR_munlock 315 -#define __NR_mlockall 316 -#define __NR_munlockall 317 -#define __NR_sysinfo 318 -#define __NR__sysctl 319 -/* 320 was sys_idle. */ -#define __NR_oldumount 321 -#define __NR_swapon 322 -#define __NR_times 323 -#define __NR_personality 324 -#define __NR_setfsuid 325 -#define __NR_setfsgid 326 -#define __NR_ustat 327 -#define __NR_statfs 328 -#define __NR_fstatfs 329 -#define __NR_sched_setparam 330 -#define __NR_sched_getparam 331 -#define __NR_sched_setscheduler 332 -#define __NR_sched_getscheduler 333 -#define __NR_sched_yield 334 -#define __NR_sched_get_priority_max 335 -#define __NR_sched_get_priority_min 336 -#define __NR_sched_rr_get_interval 337 -#define __NR_afs_syscall 338 -#define __NR_uname 339 -#define __NR_nanosleep 340 -#define __NR_mremap 341 -#define __NR_nfsservctl 342 -#define __NR_setresuid 343 -#define __NR_getresuid 344 -#define __NR_pciconfig_read 345 -#define __NR_pciconfig_write 346 -#define __NR_query_module 347 -#define __NR_prctl 348 -#define __NR_pread64 349 -#define __NR_pwrite64 350 -#define __NR_rt_sigreturn 351 -#define __NR_rt_sigaction 352 -#define __NR_rt_sigprocmask 353 -#define __NR_rt_sigpending 354 -#define __NR_rt_sigtimedwait 355 -#define __NR_rt_sigqueueinfo 356 -#define __NR_rt_sigsuspend 357 -#define __NR_select 358 -#define __NR_gettimeofday 359 -#define __NR_settimeofday 360 -#define __NR_getitimer 361 -#define __NR_setitimer 362 -#define __NR_utimes 363 -#define __NR_getrusage 364 -#define __NR_wait4 365 -#define __NR_adjtimex 366 -#define __NR_getcwd 367 -#define __NR_capget 368 -#define __NR_capset 369 -#define __NR_sendfile 370 -#define __NR_setresgid 371 -#define __NR_getresgid 372 -#define __NR_dipc 373 -#define __NR_pivot_root 374 -#define __NR_mincore 375 -#define __NR_pciconfig_iobase 376 -#define __NR_getdents64 377 -#define __NR_gettid 378 -#define __NR_readahead 379 -/* 380 is unused */ -#define __NR_tkill 381 -#define __NR_setxattr 382 -#define __NR_lsetxattr 383 -#define __NR_fsetxattr 384 -#define __NR_getxattr 385 -#define __NR_lgetxattr 386 -#define __NR_fgetxattr 387 -#define __NR_listxattr 388 -#define __NR_llistxattr 389 -#define __NR_flistxattr 390 -#define __NR_removexattr 391 -#define __NR_lremovexattr 392 -#define __NR_fremovexattr 393 -#define __NR_futex 394 -#define __NR_sched_setaffinity 395 -#define __NR_sched_getaffinity 396 -#define __NR_tuxcall 397 -#define __NR_io_setup 398 -#define __NR_io_destroy 399 -#define __NR_io_getevents 400 -#define __NR_io_submit 401 -#define __NR_io_cancel 402 -#define __NR_exit_group 405 -#define __NR_lookup_dcookie 406 -#define __NR_epoll_create 407 -#define __NR_epoll_ctl 408 -#define __NR_epoll_wait 409 -/* Feb 2007: These three sys_epoll defines shouldn't be here but culling - * them would break userspace apps ... we'll kill them off in 2010 :) */ -#define __NR_sys_epoll_create __NR_epoll_create -#define __NR_sys_epoll_ctl __NR_epoll_ctl -#define __NR_sys_epoll_wait __NR_epoll_wait -#define __NR_remap_file_pages 410 -#define __NR_set_tid_address 411 -#define __NR_restart_syscall 412 -#define __NR_fadvise64 413 -#define __NR_timer_create 414 -#define __NR_timer_settime 415 -#define __NR_timer_gettime 416 -#define __NR_timer_getoverrun 417 -#define __NR_timer_delete 418 -#define __NR_clock_settime 419 -#define __NR_clock_gettime 420 -#define __NR_clock_getres 421 -#define __NR_clock_nanosleep 422 -#define __NR_semtimedop 423 -#define __NR_tgkill 424 -#define __NR_stat64 425 -#define __NR_lstat64 426 -#define __NR_fstat64 427 -#define __NR_vserver 428 -#define __NR_mbind 429 -#define __NR_get_mempolicy 430 -#define __NR_set_mempolicy 431 -#define __NR_mq_open 432 -#define __NR_mq_unlink 433 -#define __NR_mq_timedsend 434 -#define __NR_mq_timedreceive 435 -#define __NR_mq_notify 436 -#define __NR_mq_getsetattr 437 -#define __NR_waitid 438 -#define __NR_add_key 439 -#define __NR_request_key 440 -#define __NR_keyctl 441 -#define __NR_ioprio_set 442 -#define __NR_ioprio_get 443 -#define __NR_inotify_init 444 -#define __NR_inotify_add_watch 445 -#define __NR_inotify_rm_watch 446 -#define __NR_fdatasync 447 -#define __NR_kexec_load 448 -#define __NR_migrate_pages 449 -#define __NR_openat 450 -#define __NR_mkdirat 451 -#define __NR_mknodat 452 -#define __NR_fchownat 453 -#define __NR_futimesat 454 -#define __NR_fstatat64 455 -#define __NR_unlinkat 456 -#define __NR_renameat 457 -#define __NR_linkat 458 -#define __NR_symlinkat 459 -#define __NR_readlinkat 460 -#define __NR_fchmodat 461 -#define __NR_faccessat 462 -#define __NR_pselect6 463 -#define __NR_ppoll 464 -#define __NR_unshare 465 -#define __NR_set_robust_list 466 -#define __NR_get_robust_list 467 -#define __NR_splice 468 -#define __NR_sync_file_range 469 -#define __NR_tee 470 -#define __NR_vmsplice 471 -#define __NR_move_pages 472 -#define __NR_getcpu 473 -#define __NR_epoll_pwait 474 -#define __NR_utimensat 475 -#define __NR_signalfd 476 -#define __NR_timerfd 477 -#define __NR_eventfd 478 -#define __NR_recvmmsg 479 -#define __NR_fallocate 480 -#define __NR_timerfd_create 481 -#define __NR_timerfd_settime 482 -#define __NR_timerfd_gettime 483 -#define __NR_signalfd4 484 -#define __NR_eventfd2 485 -#define __NR_epoll_create1 486 -#define __NR_dup3 487 -#define __NR_pipe2 488 -#define __NR_inotify_init1 489 -#define __NR_preadv 490 -#define __NR_pwritev 491 -#define __NR_rt_tgsigqueueinfo 492 -#define __NR_perf_event_open 493 -#define __NR_fanotify_init 494 -#define __NR_fanotify_mark 495 -#define __NR_prlimit64 496 -#define __NR_name_to_handle_at 497 -#define __NR_open_by_handle_at 498 -#define __NR_clock_adjtime 499 -#define __NR_syncfs 500 -#define __NR_setns 501 -#define __NR_accept4 502 -#define __NR_sendmmsg 503 -#define __NR_process_vm_readv 504 -#define __NR_process_vm_writev 505 - -#ifdef __KERNEL__ #define NR_SYSCALLS 506 @@ -481,7 +15,6 @@ #define __ARCH_WANT_SYS_OLDUMOUNT #define __ARCH_WANT_SYS_SIGPENDING #define __ARCH_WANT_SYS_RT_SIGSUSPEND -#define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #define __ARCH_WANT_SYS_CLONE @@ -498,5 +31,4 @@ #define cond_syscall(x) asm(".weak\t" #x "\n" #x " = sys_ni_syscall") -#endif /* __KERNEL__ */ #endif /* _ALPHA_UNISTD_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/Kbuild b/trunk/arch/alpha/include/uapi/asm/Kbuild index baebb3da1d44..d96f2ef5b639 100644 --- a/trunk/arch/alpha/include/uapi/asm/Kbuild +++ b/trunk/arch/alpha/include/uapi/asm/Kbuild @@ -1,3 +1,43 @@ # UAPI Header export list include include/uapi/asm-generic/Kbuild.asm +header-y += a.out.h +header-y += auxvec.h +header-y += bitsperlong.h +header-y += byteorder.h +header-y += compiler.h +header-y += console.h +header-y += errno.h +header-y += fcntl.h +header-y += fpu.h +header-y += gentrap.h +header-y += ioctl.h +header-y += ioctls.h +header-y += ipcbuf.h +header-y += kvm_para.h +header-y += mman.h +header-y += msgbuf.h +header-y += pal.h +header-y += param.h +header-y += poll.h +header-y += posix_types.h +header-y += ptrace.h +header-y += reg.h +header-y += regdef.h +header-y += resource.h +header-y += sembuf.h +header-y += setup.h +header-y += shmbuf.h +header-y += sigcontext.h +header-y += siginfo.h +header-y += signal.h +header-y += socket.h +header-y += sockios.h +header-y += stat.h +header-y += statfs.h +header-y += swab.h +header-y += sysinfo.h +header-y += termbits.h +header-y += termios.h +header-y += types.h +header-y += unistd.h diff --git a/trunk/arch/alpha/include/uapi/asm/a.out.h b/trunk/arch/alpha/include/uapi/asm/a.out.h new file mode 100644 index 000000000000..547707246f63 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/a.out.h @@ -0,0 +1,91 @@ +#ifndef _UAPI__ALPHA_A_OUT_H__ +#define _UAPI__ALPHA_A_OUT_H__ + +#include + +/* + * OSF/1 ECOFF header structs. ECOFF files consist of: + * - a file header (struct filehdr), + * - an a.out header (struct aouthdr), + * - one or more section headers (struct scnhdr). + * The filhdr's "f_nscns" field contains the + * number of section headers. + */ + +struct filehdr +{ + /* OSF/1 "file" header */ + __u16 f_magic, f_nscns; + __u32 f_timdat; + __u64 f_symptr; + __u32 f_nsyms; + __u16 f_opthdr, f_flags; +}; + +struct aouthdr +{ + __u64 info; /* after that it looks quite normal.. */ + __u64 tsize; + __u64 dsize; + __u64 bsize; + __u64 entry; + __u64 text_start; /* with a few additions that actually make sense */ + __u64 data_start; + __u64 bss_start; + __u32 gprmask, fprmask; /* bitmask of general & floating point regs used in binary */ + __u64 gpvalue; +}; + +struct scnhdr +{ + char s_name[8]; + __u64 s_paddr; + __u64 s_vaddr; + __u64 s_size; + __u64 s_scnptr; + __u64 s_relptr; + __u64 s_lnnoptr; + __u16 s_nreloc; + __u16 s_nlnno; + __u32 s_flags; +}; + +struct exec +{ + /* OSF/1 "file" header */ + struct filehdr fh; + struct aouthdr ah; +}; + +/* + * Define's so that the kernel exec code can access the a.out header + * fields... + */ +#define a_info ah.info +#define a_text ah.tsize +#define a_data ah.dsize +#define a_bss ah.bsize +#define a_entry ah.entry +#define a_textstart ah.text_start +#define a_datastart ah.data_start +#define a_bssstart ah.bss_start +#define a_gprmask ah.gprmask +#define a_fprmask ah.fprmask +#define a_gpvalue ah.gpvalue + +#define N_TXTADDR(x) ((x).a_textstart) +#define N_DATADDR(x) ((x).a_datastart) +#define N_BSSADDR(x) ((x).a_bssstart) +#define N_DRSIZE(x) 0 +#define N_TRSIZE(x) 0 +#define N_SYMSIZE(x) 0 + +#define AOUTHSZ sizeof(struct aouthdr) +#define SCNHSZ sizeof(struct scnhdr) +#define SCNROUND 16 + +#define N_TXTOFF(x) \ + ((long) N_MAGIC(x) == ZMAGIC ? 0 : \ + (sizeof(struct exec) + (x).fh.f_nscns*SCNHSZ + SCNROUND - 1) & ~(SCNROUND - 1)) + +#endif /* _UAPI__ALPHA_A_OUT_H__ */ diff --git a/trunk/arch/alpha/include/asm/auxvec.h b/trunk/arch/alpha/include/uapi/asm/auxvec.h similarity index 100% rename from trunk/arch/alpha/include/asm/auxvec.h rename to trunk/arch/alpha/include/uapi/asm/auxvec.h diff --git a/trunk/arch/alpha/include/asm/bitsperlong.h b/trunk/arch/alpha/include/uapi/asm/bitsperlong.h similarity index 100% rename from trunk/arch/alpha/include/asm/bitsperlong.h rename to trunk/arch/alpha/include/uapi/asm/bitsperlong.h diff --git a/trunk/arch/alpha/include/asm/byteorder.h b/trunk/arch/alpha/include/uapi/asm/byteorder.h similarity index 100% rename from trunk/arch/alpha/include/asm/byteorder.h rename to trunk/arch/alpha/include/uapi/asm/byteorder.h diff --git a/trunk/arch/alpha/include/uapi/asm/compiler.h b/trunk/arch/alpha/include/uapi/asm/compiler.h new file mode 100644 index 000000000000..32cc7833f0c1 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/compiler.h @@ -0,0 +1,117 @@ +#ifndef _UAPI__ALPHA_COMPILER_H +#define _UAPI__ALPHA_COMPILER_H + +/* + * Herein are macros we use when describing various patterns we want to GCC. + * In all cases we can get better schedules out of the compiler if we hide + * as little as possible inside inline assembly. However, we want to be + * able to know what we'll get out before giving up inline assembly. Thus + * these tests and macros. + */ + +#if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 +# define __kernel_insbl(val, shift) __builtin_alpha_insbl(val, shift) +# define __kernel_inswl(val, shift) __builtin_alpha_inswl(val, shift) +# define __kernel_insql(val, shift) __builtin_alpha_insql(val, shift) +# define __kernel_inslh(val, shift) __builtin_alpha_inslh(val, shift) +# define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) +# define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) +# define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) +#else +# define __kernel_insbl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("insbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_inswl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("inswl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_insql(val, shift) \ + ({ unsigned long __kir; \ + __asm__("insql %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_inslh(val, shift) \ + ({ unsigned long __kir; \ + __asm__("inslh %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_extbl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("extbl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_extwl(val, shift) \ + ({ unsigned long __kir; \ + __asm__("extwl %2,%1,%0" : "=r"(__kir) : "rI"(shift), "r"(val)); \ + __kir; }) +# define __kernel_cmpbge(a, b) \ + ({ unsigned long __kir; \ + __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ + __kir; }) +#endif + +#ifdef __alpha_cix__ +# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 +# define __kernel_cttz(x) __builtin_ctzl(x) +# define __kernel_ctlz(x) __builtin_clzl(x) +# define __kernel_ctpop(x) __builtin_popcountl(x) +# else +# define __kernel_cttz(x) \ + ({ unsigned long __kir; \ + __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctlz(x) \ + ({ unsigned long __kir; \ + __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctpop(x) \ + ({ unsigned long __kir; \ + __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# endif +#else +# define __kernel_cttz(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctlz(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +# define __kernel_ctpop(x) \ + ({ unsigned long __kir; \ + __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ + __kir; }) +#endif + + +/* + * Beginning with EGCS 1.1, GCC defines __alpha_bwx__ when the BWX + * extension is enabled. Previous versions did not define anything + * we could test during compilation -- too bad, so sad. + */ + +#if defined(__alpha_bwx__) +#define __kernel_ldbu(mem) (mem) +#define __kernel_ldwu(mem) (mem) +#define __kernel_stb(val,mem) ((mem) = (val)) +#define __kernel_stw(val,mem) ((mem) = (val)) +#else +#define __kernel_ldbu(mem) \ + ({ unsigned char __kir; \ + __asm__(".arch ev56; \ + ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ + __kir; }) +#define __kernel_ldwu(mem) \ + ({ unsigned short __kir; \ + __asm__(".arch ev56; \ + ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ + __kir; }) +#define __kernel_stb(val,mem) \ + __asm__(".arch ev56; \ + stb %1,%0" : "=m"(mem) : "r"(val)) +#define __kernel_stw(val,mem) \ + __asm__(".arch ev56; \ + stw %1,%0" : "=m"(mem) : "r"(val)) +#endif + + +#endif /* _UAPI__ALPHA_COMPILER_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/console.h b/trunk/arch/alpha/include/uapi/asm/console.h new file mode 100644 index 000000000000..fd08a191f360 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/console.h @@ -0,0 +1,50 @@ +#ifndef _UAPI__AXP_CONSOLE_H +#define _UAPI__AXP_CONSOLE_H + +/* + * Console callback routine numbers + */ +#define CCB_GETC 0x01 +#define CCB_PUTS 0x02 +#define CCB_RESET_TERM 0x03 +#define CCB_SET_TERM_INT 0x04 +#define CCB_SET_TERM_CTL 0x05 +#define CCB_PROCESS_KEYCODE 0x06 +#define CCB_OPEN_CONSOLE 0x07 +#define CCB_CLOSE_CONSOLE 0x08 + +#define CCB_OPEN 0x10 +#define CCB_CLOSE 0x11 +#define CCB_IOCTL 0x12 +#define CCB_READ 0x13 +#define CCB_WRITE 0x14 + +#define CCB_SET_ENV 0x20 +#define CCB_RESET_ENV 0x21 +#define CCB_GET_ENV 0x22 +#define CCB_SAVE_ENV 0x23 + +#define CCB_PSWITCH 0x30 +#define CCB_BIOS_EMUL 0x32 + +/* + * Environment variable numbers + */ +#define ENV_AUTO_ACTION 0x01 +#define ENV_BOOT_DEV 0x02 +#define ENV_BOOTDEF_DEV 0x03 +#define ENV_BOOTED_DEV 0x04 +#define ENV_BOOT_FILE 0x05 +#define ENV_BOOTED_FILE 0x06 +#define ENV_BOOT_OSFLAGS 0x07 +#define ENV_BOOTED_OSFLAGS 0x08 +#define ENV_BOOT_RESET 0x09 +#define ENV_DUMP_DEV 0x0A +#define ENV_ENABLE_AUDIT 0x0B +#define ENV_LICENSE 0x0C +#define ENV_CHAR_SET 0x0D +#define ENV_LANGUAGE 0x0E +#define ENV_TTY_DEV 0x0F + + +#endif /* _UAPI__AXP_CONSOLE_H */ diff --git a/trunk/arch/alpha/include/asm/errno.h b/trunk/arch/alpha/include/uapi/asm/errno.h similarity index 100% rename from trunk/arch/alpha/include/asm/errno.h rename to trunk/arch/alpha/include/uapi/asm/errno.h diff --git a/trunk/arch/alpha/include/asm/fcntl.h b/trunk/arch/alpha/include/uapi/asm/fcntl.h similarity index 100% rename from trunk/arch/alpha/include/asm/fcntl.h rename to trunk/arch/alpha/include/uapi/asm/fcntl.h diff --git a/trunk/arch/alpha/include/uapi/asm/fpu.h b/trunk/arch/alpha/include/uapi/asm/fpu.h new file mode 100644 index 000000000000..21a053ca2233 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/fpu.h @@ -0,0 +1,123 @@ +#ifndef _UAPI__ASM_ALPHA_FPU_H +#define _UAPI__ASM_ALPHA_FPU_H + + +/* + * Alpha floating-point control register defines: + */ +#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ +#define FPCR_DNZ (1UL<<48) /* denorms to zero */ +#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ +#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ +#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ +#define FPCR_INV (1UL<<52) /* invalid operation */ +#define FPCR_DZE (1UL<<53) /* division by zero */ +#define FPCR_OVF (1UL<<54) /* overflow */ +#define FPCR_UNF (1UL<<55) /* underflow */ +#define FPCR_INE (1UL<<56) /* inexact */ +#define FPCR_IOV (1UL<<57) /* integer overflow */ +#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ +#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ +#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ +#define FPCR_SUM (1UL<<63) /* summary bit */ + +#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ +#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ +#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ +#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ +#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ +#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) + +#define FPCR_MASK 0xffff800000000000L + +/* + * IEEE trap enables are implemented in software. These per-thread + * bits are stored in the "ieee_state" field of "struct thread_info". + * Thus, the bits are defined so as not to conflict with the + * floating-point enable bit (which is architected). On top of that, + * we want to make these bits compatible with OSF/1 so + * ieee_set_fp_control() etc. can be implemented easily and + * compatibly. The corresponding definitions are in + * /usr/include/machine/fpu.h under OSF/1. + */ +#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ +#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ +#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ +#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ +#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ +#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ +#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ + IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ + IEEE_TRAP_ENABLE_INE | IEEE_TRAP_ENABLE_DNO) + +/* Denorm and Underflow flushing */ +#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ +#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ + +#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) + +/* status bits coming from fpcr: */ +#define IEEE_STATUS_INV (1UL<<17) +#define IEEE_STATUS_DZE (1UL<<18) +#define IEEE_STATUS_OVF (1UL<<19) +#define IEEE_STATUS_UNF (1UL<<20) +#define IEEE_STATUS_INE (1UL<<21) +#define IEEE_STATUS_DNO (1UL<<22) + +#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ + IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ + IEEE_STATUS_INE | IEEE_STATUS_DNO) + +#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ + IEEE_STATUS_MASK | IEEE_MAP_MASK) + +#define IEEE_CURRENT_RM_SHIFT 32 +#define IEEE_CURRENT_RM_MASK (3UL<> 35) & IEEE_STATUS_MASK; + sw |= (fp >> 36) & IEEE_MAP_DMZ; + sw |= (~fp >> 48) & (IEEE_TRAP_ENABLE_INV + | IEEE_TRAP_ENABLE_DZE + | IEEE_TRAP_ENABLE_OVF); + sw |= (~fp >> 57) & (IEEE_TRAP_ENABLE_UNF | IEEE_TRAP_ENABLE_INE); + sw |= (fp >> 47) & IEEE_MAP_UMZ; + sw |= (~fp >> 41) & IEEE_TRAP_ENABLE_DNO; + return sw; +} + + +#endif /* _UAPI__ASM_ALPHA_FPU_H */ diff --git a/trunk/arch/alpha/include/asm/gentrap.h b/trunk/arch/alpha/include/uapi/asm/gentrap.h similarity index 100% rename from trunk/arch/alpha/include/asm/gentrap.h rename to trunk/arch/alpha/include/uapi/asm/gentrap.h diff --git a/trunk/arch/alpha/include/asm/ioctl.h b/trunk/arch/alpha/include/uapi/asm/ioctl.h similarity index 100% rename from trunk/arch/alpha/include/asm/ioctl.h rename to trunk/arch/alpha/include/uapi/asm/ioctl.h diff --git a/trunk/arch/alpha/include/asm/ioctls.h b/trunk/arch/alpha/include/uapi/asm/ioctls.h similarity index 100% rename from trunk/arch/alpha/include/asm/ioctls.h rename to trunk/arch/alpha/include/uapi/asm/ioctls.h diff --git a/trunk/arch/alpha/include/asm/ipcbuf.h b/trunk/arch/alpha/include/uapi/asm/ipcbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/ipcbuf.h rename to trunk/arch/alpha/include/uapi/asm/ipcbuf.h diff --git a/trunk/arch/alpha/include/asm/kvm_para.h b/trunk/arch/alpha/include/uapi/asm/kvm_para.h similarity index 100% rename from trunk/arch/alpha/include/asm/kvm_para.h rename to trunk/arch/alpha/include/uapi/asm/kvm_para.h diff --git a/trunk/arch/alpha/include/asm/mman.h b/trunk/arch/alpha/include/uapi/asm/mman.h similarity index 100% rename from trunk/arch/alpha/include/asm/mman.h rename to trunk/arch/alpha/include/uapi/asm/mman.h diff --git a/trunk/arch/alpha/include/asm/msgbuf.h b/trunk/arch/alpha/include/uapi/asm/msgbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/msgbuf.h rename to trunk/arch/alpha/include/uapi/asm/msgbuf.h diff --git a/trunk/arch/alpha/include/uapi/asm/pal.h b/trunk/arch/alpha/include/uapi/asm/pal.h new file mode 100644 index 000000000000..3c0ce08e5f59 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/pal.h @@ -0,0 +1,52 @@ +#ifndef _UAPI__ALPHA_PAL_H +#define _UAPI__ALPHA_PAL_H + +/* + * Common PAL-code + */ +#define PAL_halt 0 +#define PAL_cflush 1 +#define PAL_draina 2 +#define PAL_bpt 128 +#define PAL_bugchk 129 +#define PAL_chmk 131 +#define PAL_callsys 131 +#define PAL_imb 134 +#define PAL_rduniq 158 +#define PAL_wruniq 159 +#define PAL_gentrap 170 +#define PAL_nphalt 190 + +/* + * VMS specific PAL-code + */ +#define PAL_swppal 10 +#define PAL_mfpr_vptb 41 + +/* + * OSF specific PAL-code + */ +#define PAL_cserve 9 +#define PAL_wripir 13 +#define PAL_rdmces 16 +#define PAL_wrmces 17 +#define PAL_wrfen 43 +#define PAL_wrvptptr 45 +#define PAL_jtopal 46 +#define PAL_swpctx 48 +#define PAL_wrval 49 +#define PAL_rdval 50 +#define PAL_tbi 51 +#define PAL_wrent 52 +#define PAL_swpipl 53 +#define PAL_rdps 54 +#define PAL_wrkgp 55 +#define PAL_wrusp 56 +#define PAL_wrperfmon 57 +#define PAL_rdusp 58 +#define PAL_whami 60 +#define PAL_retsys 61 +#define PAL_rti 63 + + +#endif /* _UAPI__ALPHA_PAL_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/param.h b/trunk/arch/alpha/include/uapi/asm/param.h new file mode 100644 index 000000000000..29daed819ebd --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/param.h @@ -0,0 +1,21 @@ +#ifndef _UAPI_ASM_ALPHA_PARAM_H +#define _UAPI_ASM_ALPHA_PARAM_H + +/* ??? Gross. I don't want to parameterize this, and supposedly the + hardware ignores reprogramming. We also need userland buy-in to the + change in HZ, since this is visible in the wait4 resources etc. */ + +#ifndef __KERNEL__ +#define HZ 1024 +#endif + +#define EXEC_PAGESIZE 8192 + +#ifndef NOGROUP +#define NOGROUP (-1) +#endif + +#define MAXHOSTNAMELEN 64 /* max length of hostname */ + + +#endif /* _UAPI_ASM_ALPHA_PARAM_H */ diff --git a/trunk/arch/alpha/include/asm/poll.h b/trunk/arch/alpha/include/uapi/asm/poll.h similarity index 100% rename from trunk/arch/alpha/include/asm/poll.h rename to trunk/arch/alpha/include/uapi/asm/poll.h diff --git a/trunk/arch/alpha/include/asm/posix_types.h b/trunk/arch/alpha/include/uapi/asm/posix_types.h similarity index 100% rename from trunk/arch/alpha/include/asm/posix_types.h rename to trunk/arch/alpha/include/uapi/asm/posix_types.h diff --git a/trunk/arch/alpha/include/uapi/asm/ptrace.h b/trunk/arch/alpha/include/uapi/asm/ptrace.h new file mode 100644 index 000000000000..5ce83fa9a05b --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/ptrace.h @@ -0,0 +1,70 @@ +#ifndef _UAPI_ASMAXP_PTRACE_H +#define _UAPI_ASMAXP_PTRACE_H + + +/* + * This struct defines the way the registers are stored on the + * kernel stack during a system call or other kernel entry + * + * NOTE! I want to minimize the overhead of system calls, so this + * struct has as little information as possible. I does not have + * + * - floating point regs: the kernel doesn't change those + * - r9-15: saved by the C compiler + * + * This makes "fork()" and "exec()" a bit more complex, but should + * give us low system call latency. + */ + +struct pt_regs { + unsigned long r0; + unsigned long r1; + unsigned long r2; + unsigned long r3; + unsigned long r4; + unsigned long r5; + unsigned long r6; + unsigned long r7; + unsigned long r8; + unsigned long r19; + unsigned long r20; + unsigned long r21; + unsigned long r22; + unsigned long r23; + unsigned long r24; + unsigned long r25; + unsigned long r26; + unsigned long r27; + unsigned long r28; + unsigned long hae; +/* JRP - These are the values provided to a0-a2 by PALcode */ + unsigned long trap_a0; + unsigned long trap_a1; + unsigned long trap_a2; +/* These are saved by PAL-code: */ + unsigned long ps; + unsigned long pc; + unsigned long gp; + unsigned long r16; + unsigned long r17; + unsigned long r18; +}; + +/* + * This is the extended stack used by signal handlers and the context + * switcher: it's pushed after the normal "struct pt_regs". + */ +struct switch_stack { + unsigned long r9; + unsigned long r10; + unsigned long r11; + unsigned long r12; + unsigned long r13; + unsigned long r14; + unsigned long r15; + unsigned long r26; + unsigned long fp[32]; /* fp[31] is fpcr */ +}; + + +#endif /* _UAPI_ASMAXP_PTRACE_H */ diff --git a/trunk/arch/alpha/include/asm/reg.h b/trunk/arch/alpha/include/uapi/asm/reg.h similarity index 100% rename from trunk/arch/alpha/include/asm/reg.h rename to trunk/arch/alpha/include/uapi/asm/reg.h diff --git a/trunk/arch/alpha/include/asm/regdef.h b/trunk/arch/alpha/include/uapi/asm/regdef.h similarity index 100% rename from trunk/arch/alpha/include/asm/regdef.h rename to trunk/arch/alpha/include/uapi/asm/regdef.h diff --git a/trunk/arch/alpha/include/asm/resource.h b/trunk/arch/alpha/include/uapi/asm/resource.h similarity index 100% rename from trunk/arch/alpha/include/asm/resource.h rename to trunk/arch/alpha/include/uapi/asm/resource.h diff --git a/trunk/arch/alpha/include/asm/sembuf.h b/trunk/arch/alpha/include/uapi/asm/sembuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/sembuf.h rename to trunk/arch/alpha/include/uapi/asm/sembuf.h diff --git a/trunk/arch/alpha/include/asm/setup.h b/trunk/arch/alpha/include/uapi/asm/setup.h similarity index 100% rename from trunk/arch/alpha/include/asm/setup.h rename to trunk/arch/alpha/include/uapi/asm/setup.h diff --git a/trunk/arch/alpha/include/asm/shmbuf.h b/trunk/arch/alpha/include/uapi/asm/shmbuf.h similarity index 100% rename from trunk/arch/alpha/include/asm/shmbuf.h rename to trunk/arch/alpha/include/uapi/asm/shmbuf.h diff --git a/trunk/arch/alpha/include/asm/sigcontext.h b/trunk/arch/alpha/include/uapi/asm/sigcontext.h similarity index 100% rename from trunk/arch/alpha/include/asm/sigcontext.h rename to trunk/arch/alpha/include/uapi/asm/sigcontext.h diff --git a/trunk/arch/alpha/include/asm/siginfo.h b/trunk/arch/alpha/include/uapi/asm/siginfo.h similarity index 100% rename from trunk/arch/alpha/include/asm/siginfo.h rename to trunk/arch/alpha/include/uapi/asm/siginfo.h diff --git a/trunk/arch/alpha/include/uapi/asm/signal.h b/trunk/arch/alpha/include/uapi/asm/signal.h new file mode 100644 index 000000000000..dd4ca4bcbb4a --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/signal.h @@ -0,0 +1,129 @@ +#ifndef _UAPI_ASMAXP_SIGNAL_H +#define _UAPI_ASMAXP_SIGNAL_H + +#include + +/* Avoid too many header ordering problems. */ +struct siginfo; + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers. */ + +#define NSIG 32 +typedef unsigned long sigset_t; + +#endif /* __KERNEL__ */ + + +/* + * Linux/AXP has different signal numbers that Linux/i386: I'm trying + * to make it OSF/1 binary compatible, at least for normal binaries. + */ +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGEMT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGURG 16 +#define SIGSTOP 17 +#define SIGTSTP 18 +#define SIGCONT 19 +#define SIGCHLD 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGIO 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGINFO 29 +#define SIGUSR1 30 +#define SIGUSR2 31 + +#define SIGPOLL SIGIO +#define SIGPWR SIGINFO +#define SIGIOT SIGABRT + +/* These should not be considered constants from userland. */ +#define SIGRTMIN 32 +#define SIGRTMAX _NSIG + +/* + * SA_FLAGS values: + * + * SA_ONSTACK indicates that a registered stack_t will be used. + * SA_RESTART flag to get restarting signals (which were the default long ago) + * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. + * SA_RESETHAND clears the handler when the signal is delivered. + * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. + * SA_NODEFER prevents the current signal from being masked in the handler. + * + * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single + * Unix names RESETHAND and NODEFER respectively. + */ + +#define SA_ONSTACK 0x00000001 +#define SA_RESTART 0x00000002 +#define SA_NOCLDSTOP 0x00000004 +#define SA_NODEFER 0x00000008 +#define SA_RESETHAND 0x00000010 +#define SA_NOCLDWAIT 0x00000020 +#define SA_SIGINFO 0x00000040 + +#define SA_ONESHOT SA_RESETHAND +#define SA_NOMASK SA_NODEFER + +#define MINSIGSTKSZ 4096 +#define SIGSTKSZ 16384 + +#define SIG_BLOCK 1 /* for blocking signals */ +#define SIG_UNBLOCK 2 /* for unblocking signals */ +#define SIG_SETMASK 3 /* for setting the signal mask */ + +#include + +#ifndef __KERNEL__ +/* Here we must cater to libcs that poke about in kernel headers. */ + +struct sigaction { + union { + __sighandler_t _sa_handler; + void (*_sa_sigaction)(int, struct siginfo *, void *); + } _u; + sigset_t sa_mask; + int sa_flags; +}; + +#define sa_handler _u._sa_handler +#define sa_sigaction _u._sa_sigaction + +#endif /* __KERNEL__ */ + +typedef struct sigaltstack { + void __user *ss_sp; + int ss_flags; + size_t ss_size; +} stack_t; + +/* sigstack(2) is deprecated, and will be withdrawn in a future version + of the X/Open CAE Specification. Use sigaltstack instead. It is only + implemented here for OSF/1 compatibility. */ + +struct sigstack { + void __user *ss_sp; + int ss_onstack; +}; + + +#endif /* _UAPI_ASMAXP_SIGNAL_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/socket.h b/trunk/arch/alpha/include/uapi/asm/socket.h new file mode 100644 index 000000000000..097c1577735a --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/socket.h @@ -0,0 +1,81 @@ +#ifndef _UAPI_ASM_SOCKET_H +#define _UAPI_ASM_SOCKET_H + +#include + +/* For setsockopt(2) */ +/* + * Note: we only bother about making the SOL_SOCKET options + * same as OSF/1, as that's all that "normal" programs are + * likely to set. We don't necessarily want to be binary + * compatible with _everything_. + */ +#define SOL_SOCKET 0xffff + +#define SO_DEBUG 0x0001 +#define SO_REUSEADDR 0x0004 +#define SO_KEEPALIVE 0x0008 +#define SO_DONTROUTE 0x0010 +#define SO_BROADCAST 0x0020 +#define SO_LINGER 0x0080 +#define SO_OOBINLINE 0x0100 +/* To add :#define SO_REUSEPORT 0x0200 */ + +#define SO_TYPE 0x1008 +#define SO_ERROR 0x1007 +#define SO_SNDBUF 0x1001 +#define SO_RCVBUF 0x1002 +#define SO_SNDBUFFORCE 0x100a +#define SO_RCVBUFFORCE 0x100b +#define SO_RCVLOWAT 0x1010 +#define SO_SNDLOWAT 0x1011 +#define SO_RCVTIMEO 0x1012 +#define SO_SNDTIMEO 0x1013 +#define SO_ACCEPTCONN 0x1014 +#define SO_PROTOCOL 0x1028 +#define SO_DOMAIN 0x1029 + +/* linux-specific, might as well be the same as on i386 */ +#define SO_NO_CHECK 11 +#define SO_PRIORITY 12 +#define SO_BSDCOMPAT 14 + +#define SO_PASSCRED 17 +#define SO_PEERCRED 18 +#define SO_BINDTODEVICE 25 + +/* Socket filtering */ +#define SO_ATTACH_FILTER 26 +#define SO_DETACH_FILTER 27 +#define SO_GET_FILTER SO_ATTACH_FILTER + +#define SO_PEERNAME 28 +#define SO_TIMESTAMP 29 +#define SCM_TIMESTAMP SO_TIMESTAMP + +#define SO_PEERSEC 30 +#define SO_PASSSEC 34 +#define SO_TIMESTAMPNS 35 +#define SCM_TIMESTAMPNS SO_TIMESTAMPNS + +/* Security levels - as per NRL IPv6 - don't actually do anything */ +#define SO_SECURITY_AUTHENTICATION 19 +#define SO_SECURITY_ENCRYPTION_TRANSPORT 20 +#define SO_SECURITY_ENCRYPTION_NETWORK 21 + +#define SO_MARK 36 + +#define SO_TIMESTAMPING 37 +#define SCM_TIMESTAMPING SO_TIMESTAMPING + +#define SO_RXQ_OVFL 40 + +#define SO_WIFI_STATUS 41 +#define SCM_WIFI_STATUS SO_WIFI_STATUS +#define SO_PEEK_OFF 42 + +/* Instruct lower device to use last 4-bytes of skb data as FCS */ +#define SO_NOFCS 43 + + +#endif /* _UAPI_ASM_SOCKET_H */ diff --git a/trunk/arch/alpha/include/asm/sockios.h b/trunk/arch/alpha/include/uapi/asm/sockios.h similarity index 100% rename from trunk/arch/alpha/include/asm/sockios.h rename to trunk/arch/alpha/include/uapi/asm/sockios.h diff --git a/trunk/arch/alpha/include/asm/stat.h b/trunk/arch/alpha/include/uapi/asm/stat.h similarity index 100% rename from trunk/arch/alpha/include/asm/stat.h rename to trunk/arch/alpha/include/uapi/asm/stat.h diff --git a/trunk/arch/alpha/include/asm/statfs.h b/trunk/arch/alpha/include/uapi/asm/statfs.h similarity index 100% rename from trunk/arch/alpha/include/asm/statfs.h rename to trunk/arch/alpha/include/uapi/asm/statfs.h diff --git a/trunk/arch/alpha/include/asm/swab.h b/trunk/arch/alpha/include/uapi/asm/swab.h similarity index 100% rename from trunk/arch/alpha/include/asm/swab.h rename to trunk/arch/alpha/include/uapi/asm/swab.h diff --git a/trunk/arch/alpha/include/asm/sysinfo.h b/trunk/arch/alpha/include/uapi/asm/sysinfo.h similarity index 100% rename from trunk/arch/alpha/include/asm/sysinfo.h rename to trunk/arch/alpha/include/uapi/asm/sysinfo.h diff --git a/trunk/arch/alpha/include/asm/termbits.h b/trunk/arch/alpha/include/uapi/asm/termbits.h similarity index 100% rename from trunk/arch/alpha/include/asm/termbits.h rename to trunk/arch/alpha/include/uapi/asm/termbits.h diff --git a/trunk/arch/alpha/include/uapi/asm/termios.h b/trunk/arch/alpha/include/uapi/asm/termios.h new file mode 100644 index 000000000000..580ed1e4854c --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/termios.h @@ -0,0 +1,70 @@ +#ifndef _UAPI_ALPHA_TERMIOS_H +#define _UAPI_ALPHA_TERMIOS_H + +#include +#include + +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; + +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; +}; + +#define NCC 8 +struct termio { + unsigned short c_iflag; /* input mode flags */ + unsigned short c_oflag; /* output mode flags */ + unsigned short c_cflag; /* control mode flags */ + unsigned short c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +/* + * c_cc characters in the termio structure. Oh, how I love being + * backwardly compatible. Notice that character 4 and 5 are + * interpreted differently depending on whether ICANON is set in + * c_lflag. If it's set, they are used as _VEOF and _VEOL, otherwise + * as _VMIN and V_TIME. This is for compatibility with OSF/1 (which + * is compatible with sysV)... + */ +#define _VINTR 0 +#define _VQUIT 1 +#define _VERASE 2 +#define _VKILL 3 +#define _VEOF 4 +#define _VMIN 4 +#define _VEOL 5 +#define _VTIME 5 +#define _VEOL2 6 +#define _VSWTC 7 + + +#endif /* _UAPI_ALPHA_TERMIOS_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/types.h b/trunk/arch/alpha/include/uapi/asm/types.h new file mode 100644 index 000000000000..9fd3cd459777 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/types.h @@ -0,0 +1,16 @@ +#ifndef _UAPI_ALPHA_TYPES_H +#define _UAPI_ALPHA_TYPES_H + +/* + * This file is never included by application software unless + * explicitly requested (e.g., via linux/types.h) in which case the + * application is Linux specific so (user-) name space pollution is + * not a major issue. However, for interoperability, libraries still + * need to be careful to avoid a name clashes. + */ + +#ifndef __KERNEL__ +#include +#endif + +#endif /* _UAPI_ALPHA_TYPES_H */ diff --git a/trunk/arch/alpha/include/uapi/asm/unistd.h b/trunk/arch/alpha/include/uapi/asm/unistd.h new file mode 100644 index 000000000000..801d28bcea51 --- /dev/null +++ b/trunk/arch/alpha/include/uapi/asm/unistd.h @@ -0,0 +1,471 @@ +#ifndef _UAPI_ALPHA_UNISTD_H +#define _UAPI_ALPHA_UNISTD_H + +#define __NR_osf_syscall 0 /* not implemented */ +#define __NR_exit 1 +#define __NR_fork 2 +#define __NR_read 3 +#define __NR_write 4 +#define __NR_osf_old_open 5 /* not implemented */ +#define __NR_close 6 +#define __NR_osf_wait4 7 +#define __NR_osf_old_creat 8 /* not implemented */ +#define __NR_link 9 +#define __NR_unlink 10 +#define __NR_osf_execve 11 /* not implemented */ +#define __NR_chdir 12 +#define __NR_fchdir 13 +#define __NR_mknod 14 +#define __NR_chmod 15 +#define __NR_chown 16 +#define __NR_brk 17 +#define __NR_osf_getfsstat 18 /* not implemented */ +#define __NR_lseek 19 +#define __NR_getxpid 20 +#define __NR_osf_mount 21 +#define __NR_umount 22 +#define __NR_setuid 23 +#define __NR_getxuid 24 +#define __NR_exec_with_loader 25 /* not implemented */ +#define __NR_ptrace 26 +#define __NR_osf_nrecvmsg 27 /* not implemented */ +#define __NR_osf_nsendmsg 28 /* not implemented */ +#define __NR_osf_nrecvfrom 29 /* not implemented */ +#define __NR_osf_naccept 30 /* not implemented */ +#define __NR_osf_ngetpeername 31 /* not implemented */ +#define __NR_osf_ngetsockname 32 /* not implemented */ +#define __NR_access 33 +#define __NR_osf_chflags 34 /* not implemented */ +#define __NR_osf_fchflags 35 /* not implemented */ +#define __NR_sync 36 +#define __NR_kill 37 +#define __NR_osf_old_stat 38 /* not implemented */ +#define __NR_setpgid 39 +#define __NR_osf_old_lstat 40 /* not implemented */ +#define __NR_dup 41 +#define __NR_pipe 42 +#define __NR_osf_set_program_attributes 43 +#define __NR_osf_profil 44 /* not implemented */ +#define __NR_open 45 +#define __NR_osf_old_sigaction 46 /* not implemented */ +#define __NR_getxgid 47 +#define __NR_osf_sigprocmask 48 +#define __NR_osf_getlogin 49 /* not implemented */ +#define __NR_osf_setlogin 50 /* not implemented */ +#define __NR_acct 51 +#define __NR_sigpending 52 + +#define __NR_ioctl 54 +#define __NR_osf_reboot 55 /* not implemented */ +#define __NR_osf_revoke 56 /* not implemented */ +#define __NR_symlink 57 +#define __NR_readlink 58 +#define __NR_execve 59 +#define __NR_umask 60 +#define __NR_chroot 61 +#define __NR_osf_old_fstat 62 /* not implemented */ +#define __NR_getpgrp 63 +#define __NR_getpagesize 64 +#define __NR_osf_mremap 65 /* not implemented */ +#define __NR_vfork 66 +#define __NR_stat 67 +#define __NR_lstat 68 +#define __NR_osf_sbrk 69 /* not implemented */ +#define __NR_osf_sstk 70 /* not implemented */ +#define __NR_mmap 71 /* OSF/1 mmap is superset of Linux */ +#define __NR_osf_old_vadvise 72 /* not implemented */ +#define __NR_munmap 73 +#define __NR_mprotect 74 +#define __NR_madvise 75 +#define __NR_vhangup 76 +#define __NR_osf_kmodcall 77 /* not implemented */ +#define __NR_osf_mincore 78 /* not implemented */ +#define __NR_getgroups 79 +#define __NR_setgroups 80 +#define __NR_osf_old_getpgrp 81 /* not implemented */ +#define __NR_setpgrp 82 /* BSD alias for setpgid */ +#define __NR_osf_setitimer 83 +#define __NR_osf_old_wait 84 /* not implemented */ +#define __NR_osf_table 85 /* not implemented */ +#define __NR_osf_getitimer 86 +#define __NR_gethostname 87 +#define __NR_sethostname 88 +#define __NR_getdtablesize 89 +#define __NR_dup2 90 +#define __NR_fstat 91 +#define __NR_fcntl 92 +#define __NR_osf_select 93 +#define __NR_poll 94 +#define __NR_fsync 95 +#define __NR_setpriority 96 +#define __NR_socket 97 +#define __NR_connect 98 +#define __NR_accept 99 +#define __NR_getpriority 100 +#define __NR_send 101 +#define __NR_recv 102 +#define __NR_sigreturn 103 +#define __NR_bind 104 +#define __NR_setsockopt 105 +#define __NR_listen 106 +#define __NR_osf_plock 107 /* not implemented */ +#define __NR_osf_old_sigvec 108 /* not implemented */ +#define __NR_osf_old_sigblock 109 /* not implemented */ +#define __NR_osf_old_sigsetmask 110 /* not implemented */ +#define __NR_sigsuspend 111 +#define __NR_osf_sigstack 112 +#define __NR_recvmsg 113 +#define __NR_sendmsg 114 +#define __NR_osf_old_vtrace 115 /* not implemented */ +#define __NR_osf_gettimeofday 116 +#define __NR_osf_getrusage 117 +#define __NR_getsockopt 118 + +#define __NR_readv 120 +#define __NR_writev 121 +#define __NR_osf_settimeofday 122 +#define __NR_fchown 123 +#define __NR_fchmod 124 +#define __NR_recvfrom 125 +#define __NR_setreuid 126 +#define __NR_setregid 127 +#define __NR_rename 128 +#define __NR_truncate 129 +#define __NR_ftruncate 130 +#define __NR_flock 131 +#define __NR_setgid 132 +#define __NR_sendto 133 +#define __NR_shutdown 134 +#define __NR_socketpair 135 +#define __NR_mkdir 136 +#define __NR_rmdir 137 +#define __NR_osf_utimes 138 +#define __NR_osf_old_sigreturn 139 /* not implemented */ +#define __NR_osf_adjtime 140 /* not implemented */ +#define __NR_getpeername 141 +#define __NR_osf_gethostid 142 /* not implemented */ +#define __NR_osf_sethostid 143 /* not implemented */ +#define __NR_getrlimit 144 +#define __NR_setrlimit 145 +#define __NR_osf_old_killpg 146 /* not implemented */ +#define __NR_setsid 147 +#define __NR_quotactl 148 +#define __NR_osf_oldquota 149 /* not implemented */ +#define __NR_getsockname 150 + +#define __NR_osf_pid_block 153 /* not implemented */ +#define __NR_osf_pid_unblock 154 /* not implemented */ + +#define __NR_sigaction 156 +#define __NR_osf_sigwaitprim 157 /* not implemented */ +#define __NR_osf_nfssvc 158 /* not implemented */ +#define __NR_osf_getdirentries 159 +#define __NR_osf_statfs 160 +#define __NR_osf_fstatfs 161 + +#define __NR_osf_asynch_daemon 163 /* not implemented */ +#define __NR_osf_getfh 164 /* not implemented */ +#define __NR_osf_getdomainname 165 +#define __NR_setdomainname 166 + +#define __NR_osf_exportfs 169 /* not implemented */ + +#define __NR_osf_alt_plock 181 /* not implemented */ + +#define __NR_osf_getmnt 184 /* not implemented */ + +#define __NR_osf_alt_sigpending 187 /* not implemented */ +#define __NR_osf_alt_setsid 188 /* not implemented */ + +#define __NR_osf_swapon 199 +#define __NR_msgctl 200 +#define __NR_msgget 201 +#define __NR_msgrcv 202 +#define __NR_msgsnd 203 +#define __NR_semctl 204 +#define __NR_semget 205 +#define __NR_semop 206 +#define __NR_osf_utsname 207 +#define __NR_lchown 208 +#define __NR_osf_shmat 209 +#define __NR_shmctl 210 +#define __NR_shmdt 211 +#define __NR_shmget 212 +#define __NR_osf_mvalid 213 /* not implemented */ +#define __NR_osf_getaddressconf 214 /* not implemented */ +#define __NR_osf_msleep 215 /* not implemented */ +#define __NR_osf_mwakeup 216 /* not implemented */ +#define __NR_msync 217 +#define __NR_osf_signal 218 /* not implemented */ +#define __NR_osf_utc_gettime 219 /* not implemented */ +#define __NR_osf_utc_adjtime 220 /* not implemented */ + +#define __NR_osf_security 222 /* not implemented */ +#define __NR_osf_kloadcall 223 /* not implemented */ + +#define __NR_osf_stat 224 +#define __NR_osf_lstat 225 +#define __NR_osf_fstat 226 +#define __NR_osf_statfs64 227 +#define __NR_osf_fstatfs64 228 + +#define __NR_getpgid 233 +#define __NR_getsid 234 +#define __NR_sigaltstack 235 +#define __NR_osf_waitid 236 /* not implemented */ +#define __NR_osf_priocntlset 237 /* not implemented */ +#define __NR_osf_sigsendset 238 /* not implemented */ +#define __NR_osf_set_speculative 239 /* not implemented */ +#define __NR_osf_msfs_syscall 240 /* not implemented */ +#define __NR_osf_sysinfo 241 +#define __NR_osf_uadmin 242 /* not implemented */ +#define __NR_osf_fuser 243 /* not implemented */ +#define __NR_osf_proplist_syscall 244 +#define __NR_osf_ntp_adjtime 245 /* not implemented */ +#define __NR_osf_ntp_gettime 246 /* not implemented */ +#define __NR_osf_pathconf 247 /* not implemented */ +#define __NR_osf_fpathconf 248 /* not implemented */ + +#define __NR_osf_uswitch 250 /* not implemented */ +#define __NR_osf_usleep_thread 251 +#define __NR_osf_audcntl 252 /* not implemented */ +#define __NR_osf_audgen 253 /* not implemented */ +#define __NR_sysfs 254 +#define __NR_osf_subsys_info 255 /* not implemented */ +#define __NR_osf_getsysinfo 256 +#define __NR_osf_setsysinfo 257 +#define __NR_osf_afs_syscall 258 /* not implemented */ +#define __NR_osf_swapctl 259 /* not implemented */ +#define __NR_osf_memcntl 260 /* not implemented */ +#define __NR_osf_fdatasync 261 /* not implemented */ + +/* + * Ignore legacy syscalls that we don't use. + */ +#define __IGNORE_alarm +#define __IGNORE_creat +#define __IGNORE_getegid +#define __IGNORE_geteuid +#define __IGNORE_getgid +#define __IGNORE_getpid +#define __IGNORE_getppid +#define __IGNORE_getuid +#define __IGNORE_pause +#define __IGNORE_time +#define __IGNORE_utime +#define __IGNORE_umount2 + +/* + * Linux-specific system calls begin at 300 + */ +#define __NR_bdflush 300 +#define __NR_sethae 301 +#define __NR_mount 302 +#define __NR_old_adjtimex 303 +#define __NR_swapoff 304 +#define __NR_getdents 305 +#define __NR_create_module 306 +#define __NR_init_module 307 +#define __NR_delete_module 308 +#define __NR_get_kernel_syms 309 +#define __NR_syslog 310 +#define __NR_reboot 311 +#define __NR_clone 312 +#define __NR_uselib 313 +#define __NR_mlock 314 +#define __NR_munlock 315 +#define __NR_mlockall 316 +#define __NR_munlockall 317 +#define __NR_sysinfo 318 +#define __NR__sysctl 319 +/* 320 was sys_idle. */ +#define __NR_oldumount 321 +#define __NR_swapon 322 +#define __NR_times 323 +#define __NR_personality 324 +#define __NR_setfsuid 325 +#define __NR_setfsgid 326 +#define __NR_ustat 327 +#define __NR_statfs 328 +#define __NR_fstatfs 329 +#define __NR_sched_setparam 330 +#define __NR_sched_getparam 331 +#define __NR_sched_setscheduler 332 +#define __NR_sched_getscheduler 333 +#define __NR_sched_yield 334 +#define __NR_sched_get_priority_max 335 +#define __NR_sched_get_priority_min 336 +#define __NR_sched_rr_get_interval 337 +#define __NR_afs_syscall 338 +#define __NR_uname 339 +#define __NR_nanosleep 340 +#define __NR_mremap 341 +#define __NR_nfsservctl 342 +#define __NR_setresuid 343 +#define __NR_getresuid 344 +#define __NR_pciconfig_read 345 +#define __NR_pciconfig_write 346 +#define __NR_query_module 347 +#define __NR_prctl 348 +#define __NR_pread64 349 +#define __NR_pwrite64 350 +#define __NR_rt_sigreturn 351 +#define __NR_rt_sigaction 352 +#define __NR_rt_sigprocmask 353 +#define __NR_rt_sigpending 354 +#define __NR_rt_sigtimedwait 355 +#define __NR_rt_sigqueueinfo 356 +#define __NR_rt_sigsuspend 357 +#define __NR_select 358 +#define __NR_gettimeofday 359 +#define __NR_settimeofday 360 +#define __NR_getitimer 361 +#define __NR_setitimer 362 +#define __NR_utimes 363 +#define __NR_getrusage 364 +#define __NR_wait4 365 +#define __NR_adjtimex 366 +#define __NR_getcwd 367 +#define __NR_capget 368 +#define __NR_capset 369 +#define __NR_sendfile 370 +#define __NR_setresgid 371 +#define __NR_getresgid 372 +#define __NR_dipc 373 +#define __NR_pivot_root 374 +#define __NR_mincore 375 +#define __NR_pciconfig_iobase 376 +#define __NR_getdents64 377 +#define __NR_gettid 378 +#define __NR_readahead 379 +/* 380 is unused */ +#define __NR_tkill 381 +#define __NR_setxattr 382 +#define __NR_lsetxattr 383 +#define __NR_fsetxattr 384 +#define __NR_getxattr 385 +#define __NR_lgetxattr 386 +#define __NR_fgetxattr 387 +#define __NR_listxattr 388 +#define __NR_llistxattr 389 +#define __NR_flistxattr 390 +#define __NR_removexattr 391 +#define __NR_lremovexattr 392 +#define __NR_fremovexattr 393 +#define __NR_futex 394 +#define __NR_sched_setaffinity 395 +#define __NR_sched_getaffinity 396 +#define __NR_tuxcall 397 +#define __NR_io_setup 398 +#define __NR_io_destroy 399 +#define __NR_io_getevents 400 +#define __NR_io_submit 401 +#define __NR_io_cancel 402 +#define __NR_exit_group 405 +#define __NR_lookup_dcookie 406 +#define __NR_epoll_create 407 +#define __NR_epoll_ctl 408 +#define __NR_epoll_wait 409 +/* Feb 2007: These three sys_epoll defines shouldn't be here but culling + * them would break userspace apps ... we'll kill them off in 2010 :) */ +#define __NR_sys_epoll_create __NR_epoll_create +#define __NR_sys_epoll_ctl __NR_epoll_ctl +#define __NR_sys_epoll_wait __NR_epoll_wait +#define __NR_remap_file_pages 410 +#define __NR_set_tid_address 411 +#define __NR_restart_syscall 412 +#define __NR_fadvise64 413 +#define __NR_timer_create 414 +#define __NR_timer_settime 415 +#define __NR_timer_gettime 416 +#define __NR_timer_getoverrun 417 +#define __NR_timer_delete 418 +#define __NR_clock_settime 419 +#define __NR_clock_gettime 420 +#define __NR_clock_getres 421 +#define __NR_clock_nanosleep 422 +#define __NR_semtimedop 423 +#define __NR_tgkill 424 +#define __NR_stat64 425 +#define __NR_lstat64 426 +#define __NR_fstat64 427 +#define __NR_vserver 428 +#define __NR_mbind 429 +#define __NR_get_mempolicy 430 +#define __NR_set_mempolicy 431 +#define __NR_mq_open 432 +#define __NR_mq_unlink 433 +#define __NR_mq_timedsend 434 +#define __NR_mq_timedreceive 435 +#define __NR_mq_notify 436 +#define __NR_mq_getsetattr 437 +#define __NR_waitid 438 +#define __NR_add_key 439 +#define __NR_request_key 440 +#define __NR_keyctl 441 +#define __NR_ioprio_set 442 +#define __NR_ioprio_get 443 +#define __NR_inotify_init 444 +#define __NR_inotify_add_watch 445 +#define __NR_inotify_rm_watch 446 +#define __NR_fdatasync 447 +#define __NR_kexec_load 448 +#define __NR_migrate_pages 449 +#define __NR_openat 450 +#define __NR_mkdirat 451 +#define __NR_mknodat 452 +#define __NR_fchownat 453 +#define __NR_futimesat 454 +#define __NR_fstatat64 455 +#define __NR_unlinkat 456 +#define __NR_renameat 457 +#define __NR_linkat 458 +#define __NR_symlinkat 459 +#define __NR_readlinkat 460 +#define __NR_fchmodat 461 +#define __NR_faccessat 462 +#define __NR_pselect6 463 +#define __NR_ppoll 464 +#define __NR_unshare 465 +#define __NR_set_robust_list 466 +#define __NR_get_robust_list 467 +#define __NR_splice 468 +#define __NR_sync_file_range 469 +#define __NR_tee 470 +#define __NR_vmsplice 471 +#define __NR_move_pages 472 +#define __NR_getcpu 473 +#define __NR_epoll_pwait 474 +#define __NR_utimensat 475 +#define __NR_signalfd 476 +#define __NR_timerfd 477 +#define __NR_eventfd 478 +#define __NR_recvmmsg 479 +#define __NR_fallocate 480 +#define __NR_timerfd_create 481 +#define __NR_timerfd_settime 482 +#define __NR_timerfd_gettime 483 +#define __NR_signalfd4 484 +#define __NR_eventfd2 485 +#define __NR_epoll_create1 486 +#define __NR_dup3 487 +#define __NR_pipe2 488 +#define __NR_inotify_init1 489 +#define __NR_preadv 490 +#define __NR_pwritev 491 +#define __NR_rt_tgsigqueueinfo 492 +#define __NR_perf_event_open 493 +#define __NR_fanotify_init 494 +#define __NR_fanotify_mark 495 +#define __NR_prlimit64 496 +#define __NR_name_to_handle_at 497 +#define __NR_open_by_handle_at 498 +#define __NR_clock_adjtime 499 +#define __NR_syncfs 500 +#define __NR_setns 501 +#define __NR_accept4 502 +#define __NR_sendmmsg 503 +#define __NR_process_vm_readv 504 +#define __NR_process_vm_writev 505 + +#endif /* _UAPI_ALPHA_UNISTD_H */ diff --git a/trunk/arch/alpha/kernel/signal.c b/trunk/arch/alpha/kernel/signal.c index 336393c9c11f..02d02c047f17 100644 --- a/trunk/arch/alpha/kernel/signal.c +++ b/trunk/arch/alpha/kernel/signal.c @@ -122,12 +122,6 @@ SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask) return sigsuspend(&blocked); } -asmlinkage int -sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) -{ - return do_sigaltstack(uss, uoss, rdusp()); -} - /* * Do a signal return; undo the signal stack. */ @@ -418,9 +412,7 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, err |= __put_user(0, &frame->uc.uc_flags); err |= __put_user(0, &frame->uc.uc_link); err |= __put_user(set->sig[0], &frame->uc.uc_osf_sigmask); - err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); - err |= __put_user(sas_ss_flags(oldsp), &frame->uc.uc_stack.ss_flags); - err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size); + err |= __save_altstack(&frame->uc.uc_stack, oldsp); err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], oldsp); err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index 8c83d98424c7..f95ba14ae3d0 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -12,8 +12,6 @@ config ARM select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_IRQ_PROBE select GENERIC_IRQ_SHOW - select GENERIC_KERNEL_THREAD - select GENERIC_KERNEL_EXECVE select GENERIC_PCI_IOMAP select GENERIC_SMP_IDLE_THREAD select GENERIC_STRNCPY_FROM_USER diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index 49ca86e37b8d..fe4d9c3ad761 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -44,7 +44,7 @@ #else -#include +#include CONFIG_DEBUG_LL_INCLUDE .macro writeb, ch, rb senduart \ch, \rb diff --git a/trunk/arch/arm/boot/dts/Makefile b/trunk/arch/arm/boot/dts/Makefile index 0f441740c22a..e44da40d984f 100644 --- a/trunk/arch/arm/boot/dts/Makefile +++ b/trunk/arch/arm/boot/dts/Makefile @@ -42,11 +42,10 @@ dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \ exynos4210-smdkv310.dtb \ exynos4210-trats.dtb \ - exynos5250-smdk5250.dtb \ - exynos5440-ssdk5440.dtb \ exynos4412-smdk4412.dtb \ exynos5250-smdk5250.dtb \ - exynos5250-snow.dtb + exynos5250-snow.dtb \ + exynos5440-ssdk5440.dtb dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb \ ecx-2000.dtb dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \ @@ -107,6 +106,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ omap3-evm.dtb \ omap3-tobi.dtb \ omap4-panda.dtb \ + omap4-panda-a4.dtb \ omap4-panda-es.dtb \ omap4-var-som.dtb \ omap4-sdp.dtb \ @@ -131,8 +131,8 @@ dtb-$(CONFIG_ARCH_SPEAR3XX)+= spear300-evb.dtb \ spear320-evb.dtb \ spear320-hmi.dtb dtb-$(CONFIG_ARCH_SPEAR6XX)+= spear600-evb.dtb -dtb-$(CONFIG_ARCH_SUNXI) += sun4i-cubieboard.dtb \ - sun5i-olinuxino.dtb +dtb-$(CONFIG_ARCH_SUNXI) += sun4i-a10-cubieboard.dtb \ + sun5i-a13-olinuxino.dtb dtb-$(CONFIG_ARCH_TEGRA) += tegra20-harmony.dtb \ tegra20-medcom-wide.dtb \ tegra20-paz00.dtb \ diff --git a/trunk/arch/arm/boot/dts/at91sam9263.dtsi b/trunk/arch/arm/boot/dts/at91sam9263.dtsi index 8e6251f1f7a3..32ec62cf5385 100644 --- a/trunk/arch/arm/boot/dts/at91sam9263.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9263.dtsi @@ -368,14 +368,14 @@ compatible = "atmel,at91rm9200-ssc"; reg = <0xfff98000 0x4000>; interrupts = <16 4 5>; - status = "disable"; + status = "disabled"; }; ssc1: ssc@fff9c000 { compatible = "atmel,at91rm9200-ssc"; reg = <0xfff9c000 0x4000>; interrupts = <17 4 5>; - status = "disable"; + status = "disabled"; }; macb0: ethernet@fffbc000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi index fa1ae0c5479c..231858ffd850 100644 --- a/trunk/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9g45.dtsi @@ -425,14 +425,14 @@ compatible = "atmel,at91sam9g45-ssc"; reg = <0xfff9c000 0x4000>; interrupts = <16 4 5>; - status = "disable"; + status = "disabled"; }; ssc1: ssc@fffa0000 { compatible = "atmel,at91sam9g45-ssc"; reg = <0xfffa0000 0x4000>; interrupts = <17 4 5>; - status = "disable"; + status = "disabled"; }; adc0: adc@fffb0000 { diff --git a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi index 617ede541ca2..40ac3a4eb1ab 100644 --- a/trunk/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/trunk/arch/arm/boot/dts/at91sam9x5.dtsi @@ -92,7 +92,7 @@ compatible = "atmel,at91sam9g45-ssc"; reg = <0xf0010000 0x4000>; interrupts = <28 4 5>; - status = "disable"; + status = "disabled"; }; tcb0: timer@f8008000 { diff --git a/trunk/arch/arm/boot/dts/imx27-3ds.dts b/trunk/arch/arm/boot/dts/imx27-3ds.dts index b01c0d745fc5..fa04c7b18bcb 100644 --- a/trunk/arch/arm/boot/dts/imx27-3ds.dts +++ b/trunk/arch/arm/boot/dts/imx27-3ds.dts @@ -21,17 +21,17 @@ }; soc { - aipi@10000000 { /* aipi */ - + aipi@10000000 { /* aipi1 */ uart1: serial@1000a000 { fsl,uart-has-rtscts; status = "okay"; }; + }; - fec@1002b000 { + aipi@10020000 { /* aipi2 */ + ethernet@1002b000 { status = "okay"; }; }; }; - }; diff --git a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts b/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts index af50469e34b2..53b0ec0c228e 100644 --- a/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts +++ b/trunk/arch/arm/boot/dts/imx27-phytec-phycore.dts @@ -21,8 +21,7 @@ }; soc { - aipi@10000000 { /* aipi */ - + aipi@10000000 { /* aipi1 */ serial@1000a000 { fsl,uart-has-rtscts; status = "okay"; @@ -38,10 +37,6 @@ status = "okay"; }; - ethernet@1002b000 { - status = "okay"; - }; - i2c@1001d000 { clock-frequency = <400000>; status = "okay"; @@ -60,6 +55,12 @@ }; }; }; + + aipi@10020000 { /* aipi2 */ + ethernet@1002b000 { + status = "okay"; + }; + }; }; nor_flash@c0000000 { diff --git a/trunk/arch/arm/boot/dts/imx27.dtsi b/trunk/arch/arm/boot/dts/imx27.dtsi index b8d3905915ac..5a82cb5707a8 100644 --- a/trunk/arch/arm/boot/dts/imx27.dtsi +++ b/trunk/arch/arm/boot/dts/imx27.dtsi @@ -55,7 +55,7 @@ compatible = "fsl,aipi-bus", "simple-bus"; #address-cells = <1>; #size-cells = <1>; - reg = <0x10000000 0x10000000>; + reg = <0x10000000 0x20000>; ranges; wdog: wdog@10002000 { @@ -211,6 +211,15 @@ status = "disabled"; }; + }; + + aipi@10020000 { /* AIPI2 */ + compatible = "fsl,aipi-bus", "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x10020000 0x20000>; + ranges; + fec: ethernet@1002b000 { compatible = "fsl,imx27-fec"; reg = <0x1002b000 0x4000>; diff --git a/trunk/arch/arm/boot/dts/imx28-cfa10049.dts b/trunk/arch/arm/boot/dts/imx28-cfa10049.dts index b222614ac9e0..bdc80a4453dd 100644 --- a/trunk/arch/arm/boot/dts/imx28-cfa10049.dts +++ b/trunk/arch/arm/boot/dts/imx28-cfa10049.dts @@ -92,6 +92,30 @@ status = "okay"; }; + i2cmux { + compatible = "i2c-mux-gpio"; + #address-cells = <1>; + #size-cells = <0>; + mux-gpios = <&gpio1 22 0 &gpio1 23 0>; + i2c-parent = <&i2c1>; + + i2c@0 { + reg = <0>; + }; + + i2c@1 { + reg = <1>; + }; + + i2c@2 { + reg = <2>; + }; + + i2c@3 { + reg = <3>; + }; + }; + usbphy1: usbphy@8007e000 { status = "okay"; }; diff --git a/trunk/arch/arm/boot/dts/omap2420-h4.dts b/trunk/arch/arm/boot/dts/omap2420-h4.dts index 77b84e17c477..9b0d07746cba 100644 --- a/trunk/arch/arm/boot/dts/omap2420-h4.dts +++ b/trunk/arch/arm/boot/dts/omap2420-h4.dts @@ -15,6 +15,6 @@ memory { device_type = "memory"; - reg = <0x80000000 0x84000000>; /* 64 MB */ + reg = <0x80000000 0x4000000>; /* 64 MB */ }; }; diff --git a/trunk/arch/arm/boot/dts/spear13xx.dtsi b/trunk/arch/arm/boot/dts/spear13xx.dtsi index 009096d1d2c3..b4ca60f4eb42 100644 --- a/trunk/arch/arm/boot/dts/spear13xx.dtsi +++ b/trunk/arch/arm/boot/dts/spear13xx.dtsi @@ -73,7 +73,7 @@ 400000 500000 600000 >; - status = "disable"; + status = "disabled"; }; ahb { @@ -118,15 +118,15 @@ compatible = "st,spear600-fsmc-nand"; #address-cells = <1>; #size-cells = <1>; - reg = <0xb0000000 0x1000 /* FSMC Register */ - 0xb0800000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; + reg = <0xb0000000 0x1000 /* FSMC Register*/ + 0xb0800000 0x0010 /* NAND Base DATA */ + 0xb0820000 0x0010 /* NAND Base ADDR */ + 0xb0810000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; interrupts = <0 20 0x4 0 21 0x4 0 22 0x4 0 23 0x4>; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; st,mode = <2>; status = "disabled"; }; @@ -144,7 +144,7 @@ compatible = "st,pcm-audio"; #address-cells = <0>; #size-cells = <0>; - status = "disable"; + status = "disabled"; }; smi: flash@ea000000 { diff --git a/trunk/arch/arm/boot/dts/spear300.dtsi b/trunk/arch/arm/boot/dts/spear300.dtsi index 090adc656015..f79b3dfaabe6 100644 --- a/trunk/arch/arm/boot/dts/spear300.dtsi +++ b/trunk/arch/arm/boot/dts/spear300.dtsi @@ -38,10 +38,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x94000000 0x1000 /* FSMC Register */ - 0x80000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0x80000000 0x0010 /* NAND Base DATA */ + 0x80020000 0x0010 /* NAND Base ADDR */ + 0x80010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear310.dtsi b/trunk/arch/arm/boot/dts/spear310.dtsi index e814e5e97083..ab45b8c81982 100644 --- a/trunk/arch/arm/boot/dts/spear310.dtsi +++ b/trunk/arch/arm/boot/dts/spear310.dtsi @@ -33,10 +33,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x44000000 0x1000 /* FSMC Register */ - 0x40000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x10000>; - st,cle-off = <0x20000>; + 0x40000000 0x0010 /* NAND Base DATA */ + 0x40020000 0x0010 /* NAND Base ADDR */ + 0x40010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear320.dtsi b/trunk/arch/arm/boot/dts/spear320.dtsi index c056a84deabf..caa5520b1fd4 100644 --- a/trunk/arch/arm/boot/dts/spear320.dtsi +++ b/trunk/arch/arm/boot/dts/spear320.dtsi @@ -40,10 +40,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0x4c000000 0x1000 /* FSMC Register */ - 0x50000000 0x0010>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0x50000000 0x0010 /* NAND Base DATA */ + 0x50020000 0x0010 /* NAND Base ADDR */ + 0x50010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/spear600.dtsi b/trunk/arch/arm/boot/dts/spear600.dtsi index e051dde5181f..19f99dc4115e 100644 --- a/trunk/arch/arm/boot/dts/spear600.dtsi +++ b/trunk/arch/arm/boot/dts/spear600.dtsi @@ -76,10 +76,10 @@ #address-cells = <1>; #size-cells = <1>; reg = <0xd1800000 0x1000 /* FSMC Register */ - 0xd2000000 0x4000>; /* NAND Base */ - reg-names = "fsmc_regs", "nand_data"; - st,ale-off = <0x20000>; - st,cle-off = <0x10000>; + 0xd2000000 0x0010 /* NAND Base DATA */ + 0xd2020000 0x0010 /* NAND Base ADDR */ + 0xd2010000 0x0010>; /* NAND Base CMD */ + reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; status = "disabled"; }; diff --git a/trunk/arch/arm/boot/dts/sun4i-cubieboard.dts b/trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts similarity index 87% rename from trunk/arch/arm/boot/dts/sun4i-cubieboard.dts rename to trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts index f4ca126ad994..5cab82540437 100644 --- a/trunk/arch/arm/boot/dts/sun4i-cubieboard.dts +++ b/trunk/arch/arm/boot/dts/sun4i-a10-cubieboard.dts @@ -11,11 +11,11 @@ */ /dts-v1/; -/include/ "sun4i.dtsi" +/include/ "sun4i-a10.dtsi" / { model = "Cubietech Cubieboard"; - compatible = "cubietech,cubieboard", "allwinner,sun4i"; + compatible = "cubietech,a10-cubieboard", "allwinner,sun4i-a10"; aliases { serial0 = &uart0; diff --git a/trunk/arch/arm/boot/dts/sun4i.dtsi b/trunk/arch/arm/boot/dts/sun4i-a10.dtsi similarity index 100% rename from trunk/arch/arm/boot/dts/sun4i.dtsi rename to trunk/arch/arm/boot/dts/sun4i-a10.dtsi diff --git a/trunk/arch/arm/boot/dts/sun5i-olinuxino.dts b/trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts similarity index 86% rename from trunk/arch/arm/boot/dts/sun5i-olinuxino.dts rename to trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts index d6ff889a5d87..498a091a4ea2 100644 --- a/trunk/arch/arm/boot/dts/sun5i-olinuxino.dts +++ b/trunk/arch/arm/boot/dts/sun5i-a13-olinuxino.dts @@ -12,11 +12,11 @@ */ /dts-v1/; -/include/ "sun5i.dtsi" +/include/ "sun5i-a13.dtsi" / { model = "Olimex A13-Olinuxino"; - compatible = "olimex,a13-olinuxino", "allwinner,sun5i"; + compatible = "olimex,a13-olinuxino", "allwinner,sun5i-a13"; chosen { bootargs = "earlyprintk console=ttyS0,115200"; diff --git a/trunk/arch/arm/boot/dts/sun5i.dtsi b/trunk/arch/arm/boot/dts/sun5i-a13.dtsi similarity index 100% rename from trunk/arch/arm/boot/dts/sun5i.dtsi rename to trunk/arch/arm/boot/dts/sun5i-a13.dtsi diff --git a/trunk/arch/arm/configs/nhk8815_defconfig b/trunk/arch/arm/configs/nhk8815_defconfig index 240b25eea565..86cfd2959c47 100644 --- a/trunk/arch/arm/configs/nhk8815_defconfig +++ b/trunk/arch/arm/configs/nhk8815_defconfig @@ -57,7 +57,7 @@ CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_ECC_SMC=y -CONFIG_MTD_NAND_NOMADIK=y +CONFIG_MTD_NAND_FSMC=y CONFIG_MTD_ONENAND=y CONFIG_MTD_ONENAND_VERIFY_WRITE=y CONFIG_MTD_ONENAND_GENERIC=y diff --git a/trunk/arch/arm/include/asm/dma-mapping.h b/trunk/arch/arm/include/asm/dma-mapping.h index 67d06324e74a..5b579b951503 100644 --- a/trunk/arch/arm/include/asm/dma-mapping.h +++ b/trunk/arch/arm/include/asm/dma-mapping.h @@ -91,6 +91,7 @@ static inline dma_addr_t virt_to_dma(struct device *dev, void *addr) */ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr) { + debug_dma_mapping_error(dev, dma_addr); return dma_addr == DMA_ERROR_CODE; } diff --git a/trunk/arch/arm/include/asm/unistd.h b/trunk/arch/arm/include/asm/unistd.h index 7cd13cc62624..21a2700d2957 100644 --- a/trunk/arch/arm/include/asm/unistd.h +++ b/trunk/arch/arm/include/asm/unistd.h @@ -41,7 +41,6 @@ #define __ARCH_WANT_OLD_READDIR #define __ARCH_WANT_SYS_SOCKETCALL #endif -#define __ARCH_WANT_SYS_EXECVE #define __ARCH_WANT_SYS_FORK #define __ARCH_WANT_SYS_VFORK #define __ARCH_WANT_SYS_CLONE diff --git a/trunk/arch/arm/include/uapi/asm/signal.h b/trunk/arch/arm/include/uapi/asm/signal.h index 921c57fdc52e..33073bdcf091 100644 --- a/trunk/arch/arm/include/uapi/asm/signal.h +++ b/trunk/arch/arm/include/uapi/asm/signal.h @@ -87,13 +87,6 @@ typedef unsigned long sigset_t; #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND - -/* - * sigaltstack controls - */ -#define SS_ONSTACK 1 -#define SS_DISABLE 2 - #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 diff --git a/trunk/arch/arm/include/uapi/asm/unistd.h b/trunk/arch/arm/include/uapi/asm/unistd.h index ac03bdb4ae44..4da7cde70b5d 100644 --- a/trunk/arch/arm/include/uapi/asm/unistd.h +++ b/trunk/arch/arm/include/uapi/asm/unistd.h @@ -405,6 +405,7 @@ #define __NR_process_vm_readv (__NR_SYSCALL_BASE+376) #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) /* 378 for kcmp */ +#define __NR_finit_module (__NR_SYSCALL_BASE+379) /* * This may need to be greater than __NR_last_syscall+1 in order to diff --git a/trunk/arch/arm/kernel/calls.S b/trunk/arch/arm/kernel/calls.S index 5935b6a02e6e..a4fda4e7a372 100644 --- a/trunk/arch/arm/kernel/calls.S +++ b/trunk/arch/arm/kernel/calls.S @@ -388,6 +388,7 @@ CALL(sys_process_vm_readv) CALL(sys_process_vm_writev) CALL(sys_ni_syscall) /* reserved for sys_kcmp */ + CALL(sys_finit_module) #ifndef syscalls_counted .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls #define syscalls_counted diff --git a/trunk/arch/arm/kernel/setup.c b/trunk/arch/arm/kernel/setup.c index 9a89bf4aefe1..3f6cbb2e3eda 100644 --- a/trunk/arch/arm/kernel/setup.c +++ b/trunk/arch/arm/kernel/setup.c @@ -733,7 +733,7 @@ void __init setup_arch(char **cmdline_p) setup_processor(); mdesc = setup_machine_fdt(__atags_pointer); if (!mdesc) - mdesc = setup_machine_tags(__atags_pointer, machine_arch_type); + mdesc = setup_machine_tags(__atags_pointer, __machine_arch_type); machine_desc = mdesc; machine_name = mdesc->name; diff --git a/trunk/arch/arm/kernel/swp_emulate.c b/trunk/arch/arm/kernel/swp_emulate.c index df745188f5de..ab1017bd1667 100644 --- a/trunk/arch/arm/kernel/swp_emulate.c +++ b/trunk/arch/arm/kernel/swp_emulate.c @@ -109,10 +109,12 @@ static void set_segfault(struct pt_regs *regs, unsigned long addr) { siginfo_t info; + down_read(¤t->mm->mmap_sem); if (find_vma(current->mm, addr) == NULL) info.si_code = SEGV_MAPERR; else info.si_code = SEGV_ACCERR; + up_read(¤t->mm->mmap_sem); info.si_signo = SIGSEGV; info.si_errno = 0; diff --git a/trunk/arch/arm/kernel/vmlinux.lds.S b/trunk/arch/arm/kernel/vmlinux.lds.S index b9f38e388b43..11c1785bf63e 100644 --- a/trunk/arch/arm/kernel/vmlinux.lds.S +++ b/trunk/arch/arm/kernel/vmlinux.lds.S @@ -140,6 +140,8 @@ SECTIONS } #endif + NOTES + _etext = .; /* End of text and rodata section */ #ifndef CONFIG_XIP_KERNEL @@ -295,8 +297,6 @@ SECTIONS } #endif - NOTES - BSS_SECTION(0, 0, 0) _end = .; diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index 7211772edd9d..0299915575a8 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include diff --git a/trunk/arch/arm/mach-davinci/devices-da8xx.c b/trunk/arch/arm/mach-davinci/devices-da8xx.c index fcdbe437409e..2d5502d84a22 100644 --- a/trunk/arch/arm/mach-davinci/devices-da8xx.c +++ b/trunk/arch/arm/mach-davinci/devices-da8xx.c @@ -725,7 +725,7 @@ static struct resource da8xx_rtc_resources[] = { }; static struct platform_device da8xx_rtc_device = { - .name = "omap_rtc", + .name = "da830-rtc", .id = -1, .num_resources = ARRAY_SIZE(da8xx_rtc_resources), .resource = da8xx_rtc_resources, @@ -734,17 +734,6 @@ static struct platform_device da8xx_rtc_device = { int da8xx_register_rtc(void) { int ret; - void __iomem *base; - - base = ioremap(DA8XX_RTC_BASE, SZ_4K); - if (WARN_ON(!base)) - return -ENOMEM; - - /* Unlock the rtc's registers */ - __raw_writel(0x83e70b13, base + 0x6c); - __raw_writel(0x95a4f1e0, base + 0x70); - - iounmap(base); ret = platform_device_register(&da8xx_rtc_device); if (!ret) diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h index 16026c2b1c8c..d64274fc5760 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/uncompress.h @@ -47,13 +47,9 @@ static void __raw_writel(unsigned int value, unsigned int ptr) static inline void putc(int c) { - int i; - - for (i = 0; i < 1000; i++) { - /* Transmit fifo not full? */ - if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF)) - break; - } + /* Transmit fifo not full? */ + while (__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF) + ; __raw_writeb(c, PHYS_UART_DATA); } diff --git a/trunk/arch/arm/mach-exynos/clock-exynos4.c b/trunk/arch/arm/mach-exynos/clock-exynos4.c index efead60b9436..bbcb3dea0d40 100644 --- a/trunk/arch/arm/mach-exynos/clock-exynos4.c +++ b/trunk/arch/arm/mach-exynos/clock-exynos4.c @@ -529,7 +529,7 @@ static struct clk exynos4_init_clocks_off[] = { .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 8), }, { - .name = "dwmmc", + .name = "biu", .parent = &exynos4_clk_aclk_133.clk, .enable = exynos4_clk_ip_fsys_ctrl, .ctrlbit = (1 << 9), @@ -1134,7 +1134,7 @@ static struct clksrc_clk exynos4_clksrcs[] = { .reg_div = { .reg = EXYNOS4_CLKDIV_MFC, .shift = 0, .size = 4 }, }, { .clk = { - .name = "sclk_dwmmc", + .name = "ciu", .parent = &exynos4_clk_dout_mmc4.clk, .enable = exynos4_clksrc_mask_fsys_ctrl, .ctrlbit = (1 << 16), diff --git a/trunk/arch/arm/mach-exynos/common.c b/trunk/arch/arm/mach-exynos/common.c index ddd4b72c6f9a..d6d0dc651089 100644 --- a/trunk/arch/arm/mach-exynos/common.c +++ b/trunk/arch/arm/mach-exynos/common.c @@ -679,7 +679,8 @@ void __init exynos5_init_irq(void) * Theses parameters should be NULL and 0 because EXYNOS4 * uses GIC instead of VIC. */ - s5p_init_irq(NULL, 0); + if (!of_machine_is_compatible("samsung,exynos5440")) + s5p_init_irq(NULL, 0); gic_arch_extn.irq_set_wake = s3c_irq_wake; } diff --git a/trunk/arch/arm/mach-exynos/common.h b/trunk/arch/arm/mach-exynos/common.h index dac146df79ac..04744f9c120f 100644 --- a/trunk/arch/arm/mach-exynos/common.h +++ b/trunk/arch/arm/mach-exynos/common.h @@ -25,7 +25,7 @@ void exynos_init_late(void); #ifdef CONFIG_PM_GENERIC_DOMAINS int exynos_pm_late_initcall(void); #else -static int exynos_pm_late_initcall(void) { return 0; } +static inline int exynos_pm_late_initcall(void) { return 0; } #endif #ifdef CONFIG_ARCH_EXYNOS4 diff --git a/trunk/arch/arm/mach-exynos/dev-audio.c b/trunk/arch/arm/mach-exynos/dev-audio.c index a1cb42c39590..9d1a60951d7b 100644 --- a/trunk/arch/arm/mach-exynos/dev-audio.c +++ b/trunk/arch/arm/mach-exynos/dev-audio.c @@ -23,11 +23,6 @@ #include #include -static const char *rclksrc[] = { - [0] = "busclk", - [1] = "i2sclk", -}; - static int exynos4_cfg_i2s(struct platform_device *pdev) { /* configure GPIO for i2s port */ @@ -55,7 +50,6 @@ static struct s3c_audio_pdata i2sv5_pdata = { .i2s = { .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR, - .src_clk = rclksrc, .idma_addr = EXYNOS4_AUDSS_INT_MEM, }, }, @@ -78,17 +72,11 @@ struct platform_device exynos4_device_i2s0 = { }, }; -static const char *rclksrc_v3[] = { - [0] = "sclk_i2s", - [1] = "no_such_clock", -}; - static struct s3c_audio_pdata i2sv3_pdata = { .cfg_gpio = exynos4_cfg_i2s, .type = { .i2s = { .quirks = QUIRK_NO_MUXPSR, - .src_clk = rclksrc_v3, }, }, }; diff --git a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c index f038c8cadca4..e99d3d8f2bcf 100644 --- a/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/trunk/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -163,6 +163,7 @@ static char const *exynos5_dt_compat[] __initdata = { static void __init exynos5_reserve(void) { +#ifdef CONFIG_S5P_DEV_MFC struct s5p_mfc_dt_meminfo mfc_mem; /* Reserve memory for MFC only if it's available */ @@ -170,6 +171,7 @@ static void __init exynos5_reserve(void) if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, &mfc_mem)) s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff, mfc_mem.lsize); +#endif } DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") diff --git a/trunk/arch/arm/mach-exynos/mach-origen.c b/trunk/arch/arm/mach-exynos/mach-origen.c index e6f4191cd14c..5e34b9c16196 100644 --- a/trunk/arch/arm/mach-exynos/mach-origen.c +++ b/trunk/arch/arm/mach-exynos/mach-origen.c @@ -621,7 +621,7 @@ static struct pwm_lookup origen_pwm_lookup[] = { PWM_LOOKUP("s3c24xx-pwm.0", 0, "pwm-backlight.0", NULL), }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -793,7 +793,7 @@ static void __init origen_machine_init(void) s5p_i2c_hdmiphy_set_platdata(NULL); s5p_hdmi_set_platdata(&hdmiphy_info, NULL, 0); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/mach-smdk4x12.c b/trunk/arch/arm/mach-exynos/mach-smdk4x12.c index a1555a73c7af..ae6da40c2aa9 100644 --- a/trunk/arch/arm/mach-exynos/mach-smdk4x12.c +++ b/trunk/arch/arm/mach-exynos/mach-smdk4x12.c @@ -246,7 +246,7 @@ static struct samsung_keypad_platdata smdk4x12_keypad_data __initdata = { .cols = 8, }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -360,7 +360,7 @@ static void __init smdk4x12_machine_init(void) s3c_hsotg_set_platdata(&smdk4x12_hsotg_pdata); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/mach-smdkv310.c b/trunk/arch/arm/mach-exynos/mach-smdkv310.c index b7384241fb03..35548e3c097d 100644 --- a/trunk/arch/arm/mach-exynos/mach-smdkv310.c +++ b/trunk/arch/arm/mach-exynos/mach-smdkv310.c @@ -159,7 +159,7 @@ static struct platform_device smdkv310_lcd_lte480wv = { .dev.platform_data = &smdkv310_lcd_lte480wv_data, }; -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD static struct exynos_drm_fimd_pdata drm_fimd_pdata = { .panel = { .timing = { @@ -402,7 +402,7 @@ static void __init smdkv310_machine_init(void) samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); pwm_add_table(smdkv310_pwm_lookup, ARRAY_SIZE(smdkv310_pwm_lookup)); -#ifdef CONFIG_DRM_EXYNOS +#ifdef CONFIG_DRM_EXYNOS_FIMD s5p_device_fimd0.dev.platform_data = &drm_fimd_pdata; exynos4_fimd0_gpio_setup_24bpp(); #else diff --git a/trunk/arch/arm/mach-exynos/platsmp.c b/trunk/arch/arm/mach-exynos/platsmp.c index 4ca8ff14a5bf..c5c840e947b8 100644 --- a/trunk/arch/arm/mach-exynos/platsmp.c +++ b/trunk/arch/arm/mach-exynos/platsmp.c @@ -198,7 +198,7 @@ static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) { int i; - if (!soc_is_exynos5250()) + if (!(soc_is_exynos5250() || soc_is_exynos5440())) scu_enable(scu_base_addr()); /* diff --git a/trunk/arch/arm/mach-imx/clk-imx51-imx53.c b/trunk/arch/arm/mach-imx/clk-imx51-imx53.c index e8c0473c7568..579023f59dc1 100644 --- a/trunk/arch/arm/mach-imx/clk-imx51-imx53.c +++ b/trunk/arch/arm/mach-imx/clk-imx51-imx53.c @@ -319,6 +319,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, unsigned long rate_ckih1, unsigned long rate_ckih2) { int i; + u32 val; struct device_node *np; clk[pll1_sw] = imx_clk_pllv2("pll1_sw", "osc", MX51_DPLL1_BASE); @@ -390,6 +391,21 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, imx_print_silicon_rev("i.MX51", mx51_revision()); clk_disable_unprepare(clk[iim_gate]); + /* + * Reference Manual says: Functionality of CCDR[18] and CLPCR[23] is no + * longer supported. Set to one for better power saving. + * + * The effect of not setting these bits is that MIPI clocks can't be + * enabled without the IPU clock being enabled aswell. + */ + val = readl(MXC_CCM_CCDR); + val |= 1 << 18; + writel(val, MXC_CCM_CCDR); + + val = readl(MXC_CCM_CLPCR); + val |= 1 << 23; + writel(val, MXC_CCM_CLPCR); + return 0; } diff --git a/trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c b/trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c similarity index 94% rename from trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c rename to trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c index 508404ddd4ea..11bd01d402f2 100644 --- a/trunk/arch/arm/plat-mxc/devices/platform-mx2-emma.c +++ b/trunk/arch/arm/mach-imx/devices/platform-mx2-emma.c @@ -6,8 +6,8 @@ * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. */ -#include -#include +#include "../hardware.h" +#include "devices-common.h" #define imx_mx2_emmaprp_data_entry_single(soc) \ { \ diff --git a/trunk/arch/arm/mach-mxs/mach-mxs.c b/trunk/arch/arm/mach-mxs/mach-mxs.c index 98070370d602..c66129b5dd18 100644 --- a/trunk/arch/arm/mach-mxs/mach-mxs.c +++ b/trunk/arch/arm/mach-mxs/mach-mxs.c @@ -240,7 +240,7 @@ static void __init update_fec_mac_prop(enum mac_oui oui) macaddr[4] = (val >> 8) & 0xff; macaddr[5] = (val >> 0) & 0xff; - prom_update_property(np, newmac); + of_update_property(np, newmac); } } diff --git a/trunk/arch/arm/mach-nomadik/board-nhk8815.c b/trunk/arch/arm/mach-nomadik/board-nhk8815.c index 5ccdf53c5a9d..98167a4319f7 100644 --- a/trunk/arch/arm/mach-nomadik/board-nhk8815.c +++ b/trunk/arch/arm/mach-nomadik/board-nhk8815.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #include #include "cpu-8815.h" @@ -42,39 +42,34 @@ #define SRC_CR_INIT_MASK 0x00007fff #define SRC_CR_INIT_VAL 0x2aaa8000 +#define ALE_OFF 0x1000000 +#define CLE_OFF 0x800000 + /* These addresses span 16MB, so use three individual pages */ static struct resource nhk8815_nand_resources[] = { { + .name = "nand_data", + .start = 0x40000000, + .end = 0x40000000 + SZ_16K - 1, + .flags = IORESOURCE_MEM, + }, { .name = "nand_addr", - .start = NAND_IO_ADDR, - .end = NAND_IO_ADDR + 0xfff, + .start = 0x40000000 + ALE_OFF, + .end = 0x40000000 +ALE_OFF + SZ_16K - 1, .flags = IORESOURCE_MEM, }, { .name = "nand_cmd", - .start = NAND_IO_CMD, - .end = NAND_IO_CMD + 0xfff, + .start = 0x40000000 + CLE_OFF, + .end = 0x40000000 + CLE_OFF + SZ_16K - 1, .flags = IORESOURCE_MEM, }, { - .name = "nand_data", - .start = NAND_IO_DATA, - .end = NAND_IO_DATA + 0xfff, + .name = "fsmc_regs", + .start = NOMADIK_FSMC_BASE, + .end = NOMADIK_FSMC_BASE + SZ_4K - 1, .flags = IORESOURCE_MEM, - } + }, }; -static int nhk8815_nand_init(void) -{ - /* FSMC setup for nand chip select (8-bit nand in 8815NHK) */ - writel(0x0000000E, FSMC_PCR(0)); - writel(0x000D0A00, FSMC_PMEM(0)); - writel(0x00100A00, FSMC_PATT(0)); - - /* enable access to the chip select area */ - writel(readl(FSMC_PCR(0)) | 0x04, FSMC_PCR(0)); - - return 0; -} - /* * These partitions are the same as those used in the 2.6.20 release * shipped by the vendor; the first two partitions are mandated @@ -108,20 +103,28 @@ static struct mtd_partition nhk8815_partitions[] = { } }; -static struct nomadik_nand_platform_data nhk8815_nand_data = { - .parts = nhk8815_partitions, - .nparts = ARRAY_SIZE(nhk8815_partitions), - .options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING, - .init = nhk8815_nand_init, +static struct fsmc_nand_timings nhk8815_nand_timings = { + .thiz = 0, + .thold = 0x10, + .twait = 0x0A, + .tset = 0, +}; + +static struct fsmc_nand_platform_data nhk8815_nand_platform_data = { + .nand_timings = &nhk8815_nand_timings, + .partitions = nhk8815_partitions, + .nr_partitions = ARRAY_SIZE(nhk8815_partitions), + .width = FSMC_NAND_BW8, }; static struct platform_device nhk8815_nand_device = { - .name = "nomadik_nand", - .dev = { - .platform_data = &nhk8815_nand_data, + .name = "fsmc-nand", + .id = -1, + .resource = nhk8815_nand_resources, + .num_resources = ARRAY_SIZE(nhk8815_nand_resources), + .dev = { + .platform_data = &nhk8815_nand_platform_data, }, - .resource = nhk8815_nand_resources, - .num_resources = ARRAY_SIZE(nhk8815_nand_resources), }; /* These are the partitions for the OneNand device, different from above */ @@ -176,6 +179,10 @@ static struct platform_device nhk8815_onenand_device = { .num_resources = ARRAY_SIZE(nhk8815_onenand_resource), }; +/* bus control reg. and bus timing reg. for CS0..CS3 */ +#define FSMC_BCR(x) (NOMADIK_FSMC_VA + (x << 3)) +#define FSMC_BTR(x) (NOMADIK_FSMC_VA + (x << 3) + 0x04) + static void __init nhk8815_onenand_init(void) { #ifdef CONFIG_MTD_ONENAND diff --git a/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h b/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h deleted file mode 100644 index 8c2c05183685..000000000000 --- a/trunk/arch/arm/mach-nomadik/include/mach/fsmc.h +++ /dev/null @@ -1,29 +0,0 @@ - -/* Definitions for the Nomadik FSMC "Flexible Static Memory controller" */ - -#ifndef __ASM_ARCH_FSMC_H -#define __ASM_ARCH_FSMC_H - -#include -/* - * Register list - */ - -/* bus control reg. and bus timing reg. for CS0..CS3 */ -#define FSMC_BCR(x) (NOMADIK_FSMC_VA + (x << 3)) -#define FSMC_BTR(x) (NOMADIK_FSMC_VA + (x << 3) + 0x04) - -/* PC-card and NAND: - * PCR = control register - * PMEM = memory timing - * PATT = attribute timing - * PIO = I/O timing - * PECCR = ECC result - */ -#define FSMC_PCR(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x00) -#define FSMC_PMEM(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x08) -#define FSMC_PATT(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x0c) -#define FSMC_PIO(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x10) -#define FSMC_PECCR(x) (NOMADIK_FSMC_VA + ((2 + x) << 5) + 0x14) - -#endif /* __ASM_ARCH_FSMC_H */ diff --git a/trunk/arch/arm/mach-omap1/board-nokia770.c b/trunk/arch/arm/mach-omap1/board-nokia770.c index 3e8ead67e459..24d2f2df11a0 100644 --- a/trunk/arch/arm/mach-omap1/board-nokia770.c +++ b/trunk/arch/arm/mach-omap1/board-nokia770.c @@ -112,17 +112,6 @@ static void __init mipid_dev_init(void) omapfb_set_lcd_config(&nokia770_lcd_config); } -static void __init ads7846_dev_init(void) -{ - if (gpio_request(ADS7846_PENDOWN_GPIO, "ADS7846 pendown") < 0) - printk(KERN_ERR "can't get ads7846 pen down GPIO\n"); -} - -static int ads7846_get_pendown_state(void) -{ - return !gpio_get_value(ADS7846_PENDOWN_GPIO); -} - static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = { .x_max = 0x0fff, .y_max = 0x0fff, @@ -131,7 +120,7 @@ static struct ads7846_platform_data nokia770_ads7846_platform_data __initdata = .debounce_max = 10, .debounce_tol = 3, .debounce_rep = 1, - .get_pendown_state = ads7846_get_pendown_state, + .gpio_pendown = ADS7846_PENDOWN_GPIO, }; static struct spi_board_info nokia770_spi_board_info[] __initdata = { @@ -241,7 +230,6 @@ static void __init omap_nokia770_init(void) omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); hwa742_dev_init(); - ads7846_dev_init(); mipid_dev_init(); omap1_usb_init(&nokia770_usb_config); nokia770_mmc_init(); diff --git a/trunk/arch/arm/mach-omap2/Kconfig b/trunk/arch/arm/mach-omap2/Kconfig index be0f62bf9037..41b581fd0213 100644 --- a/trunk/arch/arm/mach-omap2/Kconfig +++ b/trunk/arch/arm/mach-omap2/Kconfig @@ -26,6 +26,8 @@ config SOC_HAS_OMAP2_SDRC config SOC_HAS_REALTIME_COUNTER bool "Real time free running counter" + depends on SOC_OMAP5 + default y config ARCH_OMAP2 bool "TI OMAP2" @@ -79,7 +81,6 @@ config SOC_OMAP5 select ARM_GIC select CPU_V7 select HAVE_SMP - select SOC_HAS_REALTIME_COUNTER select COMMON_CLK comment "OMAP Core Type" diff --git a/trunk/arch/arm/mach-omap2/board-3430sdp.c b/trunk/arch/arm/mach-omap2/board-3430sdp.c index 7b201546834d..bb73afc9ac17 100644 --- a/trunk/arch/arm/mach-omap2/board-3430sdp.c +++ b/trunk/arch/arm/mach-omap2/board-3430sdp.c @@ -157,6 +157,7 @@ static struct omap_dss_device sdp3430_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = -1, }; static struct omap_dss_device sdp3430_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-am3517evm.c b/trunk/arch/arm/mach-omap2/board-am3517evm.c index 4be58fd071f6..f81a303b87ff 100644 --- a/trunk/arch/arm/mach-omap2/board-am3517evm.c +++ b/trunk/arch/arm/mach-omap2/board-am3517evm.c @@ -208,6 +208,7 @@ static struct omap_dss_device am3517_evm_tv_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = -1, }; static struct omap_dss_device am3517_evm_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-cm-t35.c b/trunk/arch/arm/mach-omap2/board-cm-t35.c index c8e37dc00892..b3102c2f4a3c 100644 --- a/trunk/arch/arm/mach-omap2/board-cm-t35.c +++ b/trunk/arch/arm/mach-omap2/board-cm-t35.c @@ -241,6 +241,7 @@ static struct omap_dss_device cm_t35_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = CM_T35_DVI_EN_GPIO, + .i2c_bus_num = -1, }; static struct omap_dss_device cm_t35_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-devkit8000.c b/trunk/arch/arm/mach-omap2/board-devkit8000.c index 7667eb749522..12865af25d3a 100644 --- a/trunk/arch/arm/mach-omap2/board-devkit8000.c +++ b/trunk/arch/arm/mach-omap2/board-devkit8000.c @@ -141,6 +141,7 @@ static struct omap_dss_device devkit8000_lcd_device = { static struct tfp410_platform_data dvi_panel = { .power_down_gpio = -1, + .i2c_bus_num = 1, }; static struct omap_dss_device devkit8000_dvi_device = { diff --git a/trunk/arch/arm/mach-omap2/board-h4.c b/trunk/arch/arm/mach-omap2/board-h4.c index 9a3878ec2256..3be1311f9e33 100644 --- a/trunk/arch/arm/mach-omap2/board-h4.c +++ b/trunk/arch/arm/mach-omap2/board-h4.c @@ -27,14 +27,12 @@ #include #include #include +#include #include #include #include -#include -#include - #include