From 88d0e2ce91692fc460372a0ad076f650f12b3d72 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 14 Jan 2008 09:10:45 -0800 Subject: [PATCH] --- yaml --- r: 75466 b: refs/heads/master c: 4fd3670eb1d3c33e8952cf1e79edbb2d517dcfb5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/00-INDEX | 2 + .../ABI/testing/sysfs-kernel-uids | 14 + trunk/Documentation/DocBook/Makefile | 2 +- trunk/Documentation/DocBook/uio-howto.tmpl | 90 +- trunk/Documentation/SubmittingPatches | 4 +- trunk/Documentation/accounting/getdelays.c | 43 +- .../feature-removal-schedule.txt | 9 - trunk/Documentation/hwmon/sysfs-interface | 31 + trunk/Documentation/i2c/summary | 45 +- trunk/Documentation/i386/boot.txt | 38 + trunk/Documentation/i386/zero-page.txt | 122 +- trunk/Documentation/ja_JP/HOWTO | 8 +- trunk/Documentation/ja_JP/SubmittingPatches | 556 +++++ trunk/Documentation/kernel-parameters.txt | 26 +- trunk/Documentation/ko_KR/HOWTO | 144 +- .../ko_KR/stable_api_nonsense.txt | 195 ++ trunk/Documentation/lguest/lguest.c | 26 +- trunk/Documentation/lguest/lguest.txt | 4 - trunk/Documentation/local_ops.txt | 23 + trunk/Documentation/markers.txt | 6 +- .../namespaces/compatibility-list.txt | 39 + trunk/Documentation/networking/00-INDEX | 10 - trunk/Documentation/networking/3c505.txt | 3 +- trunk/Documentation/networking/Configurable | 34 - trunk/Documentation/networking/bonding.txt | 29 +- trunk/Documentation/networking/comx.txt | 248 -- trunk/Documentation/networking/ncsa-telnet | 16 - trunk/Documentation/networking/pt.txt | 58 - trunk/Documentation/networking/routing.txt | 46 - trunk/Documentation/networking/slicecom.hun | 371 --- trunk/Documentation/networking/slicecom.txt | 369 --- trunk/Documentation/nfsroot.txt | 10 +- trunk/Documentation/parport-lowlevel.txt | 4 + .../powerpc/booting-without-of.txt | 280 ++- trunk/Documentation/rtc.txt | 7 +- .../scsi/link_power_management_policy.txt | 19 + trunk/Documentation/sysctl/vm.txt | 19 + trunk/Documentation/thinkpad-acpi.txt | 73 +- trunk/Documentation/tipar.txt | 93 - trunk/Documentation/tty.txt | 8 + trunk/Documentation/usb/power-management.txt | 8 + .../Documentation/video4linux/CARDLIST.em28xx | 3 + trunk/Documentation/vm/hugetlbpage.txt | 35 +- trunk/Documentation/x86_64/uefi.txt | 29 + trunk/MAINTAINERS | 279 +-- trunk/Makefile | 54 +- trunk/arch/alpha/Makefile | 10 +- trunk/arch/alpha/kernel/err_ev7.c | 2 +- trunk/arch/alpha/kernel/err_marvel.c | 2 +- trunk/arch/alpha/kernel/err_titan.c | 2 +- trunk/arch/alpha/kernel/machvec_impl.h | 2 +- trunk/arch/alpha/kernel/pci-noop.c | 14 +- trunk/arch/alpha/lib/ev6-stxncpy.S | 14 +- trunk/arch/alpha/lib/strncpy.S | 2 +- trunk/arch/alpha/lib/stxncpy.S | 14 +- trunk/arch/arm/Kconfig | 10 +- trunk/arch/arm/boot/compressed/head.S | 2 +- trunk/arch/arm/common/it8152.c | 10 +- trunk/arch/arm/common/uengine.c | 6 +- trunk/arch/arm/configs/zylonite_defconfig | 736 ++++++ trunk/arch/arm/kernel/entry-armv.S | 96 +- trunk/arch/arm/kernel/traps.c | 5 +- trunk/arch/arm/mach-at91/at91rm9200_devices.c | 41 +- .../arch/arm/mach-at91/at91sam9260_devices.c | 42 +- .../arch/arm/mach-at91/at91sam9261_devices.c | 42 +- .../arch/arm/mach-at91/at91sam9263_devices.c | 42 +- trunk/arch/arm/mach-at91/at91sam9rl_devices.c | 43 +- trunk/arch/arm/mach-at91/board-carmeva.c | 2 +- trunk/arch/arm/mach-at91/board-csb337.c | 11 +- trunk/arch/arm/mach-at91/board-csb637.c | 2 +- trunk/arch/arm/mach-at91/board-dk.c | 15 +- trunk/arch/arm/mach-at91/board-eb9200.c | 10 +- trunk/arch/arm/mach-at91/board-ek.c | 11 +- trunk/arch/arm/mach-at91/board-kafa.c | 2 +- trunk/arch/arm/mach-at91/board-kb9202.c | 2 +- trunk/arch/arm/mach-at91/board-picotux200.c | 2 +- trunk/arch/arm/mach-at91/board-sam9260ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9261ek.c | 18 +- trunk/arch/arm/mach-at91/board-sam9263ek.c | 2 +- trunk/arch/arm/mach-at91/board-sam9rlek.c | 2 +- trunk/arch/arm/mach-at91/clock.c | 9 +- trunk/arch/arm/mach-imx/irq.c | 51 +- trunk/arch/arm/mach-iop32x/n2100.c | 11 + trunk/arch/arm/mach-ixp2000/Kconfig | 2 +- trunk/arch/arm/mach-ixp4xx/common.c | 10 +- trunk/arch/arm/mach-netx/xc.c | 6 +- trunk/arch/arm/mach-omap1/board-h2.c | 4 + trunk/arch/arm/mach-omap2/clock.c | 2 +- trunk/arch/arm/mach-pxa/cm-x270-pci.c | 18 +- trunk/arch/arm/mach-pxa/mfp.c | 2 +- trunk/arch/arm/mach-pxa/pxa25x.c | 13 +- trunk/arch/arm/mach-pxa/pxa27x.c | 2 +- trunk/arch/arm/mach-pxa/pxa300.c | 2 +- trunk/arch/arm/mach-pxa/pxa320.c | 9 +- trunk/arch/arm/mach-pxa/pxa3xx.c | 39 +- trunk/arch/arm/mach-pxa/ssp.c | 1 + trunk/arch/arm/mach-pxa/time.c | 26 +- trunk/arch/arm/mach-pxa/zylonite.c | 2 +- trunk/arch/arm/mach-pxa/zylonite_pxa300.c | 2 +- trunk/arch/arm/mach-pxa/zylonite_pxa320.c | 2 +- trunk/arch/arm/mm/consistent.c | 1 - trunk/arch/arm/mm/proc-arm926.S | 4 + trunk/arch/arm/plat-omap/fb.c | 2 +- trunk/arch/arm/vfp/vfp.h | 2 + trunk/arch/arm/vfp/vfpdouble.c | 14 +- trunk/arch/avr32/Kconfig | 68 +- trunk/arch/avr32/kernel/Makefile | 1 + trunk/arch/avr32/kernel/asm-offsets.c | 2 + trunk/arch/avr32/kernel/entry-avr32b.S | 285 ++- trunk/arch/avr32/kernel/kprobes.c | 14 +- trunk/arch/avr32/kernel/process.c | 9 +- trunk/arch/avr32/kernel/ptrace.c | 273 ++- trunk/arch/avr32/kernel/stacktrace.c | 53 + trunk/arch/avr32/kernel/traps.c | 2 +- trunk/arch/avr32/kernel/vmlinux.lds.S | 2 +- trunk/arch/avr32/mach-at32ap/at32ap7000.c | 4 +- trunk/arch/avr32/mach-at32ap/hsmc.c | 1 - trunk/arch/avr32/mach-at32ap/intc.c | 4 +- trunk/arch/avr32/mm/cache.c | 20 +- trunk/arch/blackfin/Kconfig | 317 +-- trunk/arch/blackfin/Kconfig.debug | 178 ++ trunk/arch/blackfin/Makefile | 2 + .../blackfin/configs/BF527-EZKIT_defconfig | 25 +- .../blackfin/configs/BF533-EZKIT_defconfig | 39 +- .../blackfin/configs/BF533-STAMP_defconfig | 39 +- .../blackfin/configs/BF537-STAMP_defconfig | 81 +- .../blackfin/configs/BF548-EZKIT_defconfig | 293 ++- .../blackfin/configs/BF561-EZKIT_defconfig | 47 +- trunk/arch/blackfin/configs/H8606_defconfig | 1160 +++++++++ trunk/arch/blackfin/configs/PNAV-10_defconfig | 73 +- trunk/arch/blackfin/kernel/bfin_dma_5xx.c | 1 + trunk/arch/blackfin/kernel/bfin_ksyms.c | 7 +- trunk/arch/blackfin/kernel/cplbinit.c | 73 +- trunk/arch/blackfin/kernel/early_printk.c | 3 +- trunk/arch/blackfin/kernel/entry.S | 6 +- trunk/arch/blackfin/kernel/fixed_code.S | 14 + trunk/arch/blackfin/kernel/gptimers.c | 47 +- trunk/arch/blackfin/kernel/process.c | 66 - trunk/arch/blackfin/kernel/setup.c | 22 +- trunk/arch/blackfin/kernel/traps.c | 391 ++-- trunk/arch/blackfin/kernel/vmlinux.lds.S | 11 +- trunk/arch/blackfin/lib/Makefile | 2 +- trunk/arch/blackfin/lib/ins.S | 19 + trunk/arch/blackfin/lib/strcmp.c | 11 +- trunk/arch/blackfin/lib/strcpy.c | 11 +- trunk/arch/blackfin/lib/strncmp.c | 11 +- trunk/arch/blackfin/lib/strncpy.c | 11 +- trunk/arch/blackfin/lib/udivdi3.S | 375 --- trunk/arch/blackfin/mach-bf527/Kconfig | 2 + trunk/arch/blackfin/mach-bf527/boards/Kconfig | 12 + .../arch/blackfin/mach-bf527/boards/Makefile | 6 +- .../arch/blackfin/mach-bf527/boards/eth_mac.c | 50 - trunk/arch/blackfin/mach-bf527/boards/ezkit.c | 90 +- trunk/arch/blackfin/mach-bf533/Kconfig | 2 + trunk/arch/blackfin/mach-bf533/boards/H8606.c | 343 +++ trunk/arch/blackfin/mach-bf533/boards/Kconfig | 34 + .../arch/blackfin/mach-bf533/boards/Makefile | 3 +- .../blackfin/mach-bf533/boards/cm_bf533.c | 46 +- trunk/arch/blackfin/mach-bf533/boards/ezkit.c | 4 +- .../mach-bf533/boards/generic_board.c | 4 - trunk/arch/blackfin/mach-bf533/boards/stamp.c | 8 +- trunk/arch/blackfin/mach-bf537/Kconfig | 2 + trunk/arch/blackfin/mach-bf537/boards/Kconfig | 29 + .../arch/blackfin/mach-bf537/boards/Makefile | 9 +- .../blackfin/mach-bf537/boards/cm_bf537.c | 15 +- .../arch/blackfin/mach-bf537/boards/eth_mac.c | 50 - .../mach-bf537/boards/generic_board.c | 13 +- .../arch/blackfin/mach-bf537/boards/pnav10.c | 15 +- trunk/arch/blackfin/mach-bf537/boards/stamp.c | 56 +- trunk/arch/blackfin/mach-bf548/Kconfig | 2 + trunk/arch/blackfin/mach-bf548/boards/Kconfig | 12 + .../arch/blackfin/mach-bf548/boards/Makefile | 2 +- trunk/arch/blackfin/mach-bf548/boards/ezkit.c | 20 +- trunk/arch/blackfin/mach-bf548/head.S | 21 + trunk/arch/blackfin/mach-bf561/Kconfig | 4 +- trunk/arch/blackfin/mach-bf561/boards/Kconfig | 27 + .../arch/blackfin/mach-bf561/boards/Makefile | 2 +- .../blackfin/mach-bf561/boards/cm_bf561.c | 4 +- trunk/arch/blackfin/mach-bf561/boards/ezkit.c | 29 + .../mach-bf561/boards/generic_board.c | 4 - trunk/arch/blackfin/mach-bf561/boards/tepla.c | 4 - trunk/arch/blackfin/mach-common/cplbinfo.c | 2 +- trunk/arch/blackfin/mach-common/cplbmgr.S | 25 +- trunk/arch/blackfin/mach-common/entry.S | 56 +- trunk/arch/blackfin/mach-common/interrupt.S | 1 - .../blackfin/mach-common/ints-priority-dc.c | 21 +- .../blackfin/mach-common/ints-priority-sc.c | 28 +- trunk/arch/blackfin/mach-common/irqpanic.c | 14 +- trunk/arch/blackfin/mm/blackfin_sram.c | 1 - trunk/arch/cris/Kconfig | 19 +- trunk/arch/cris/arch-v10/defconfig | 2 - trunk/arch/cris/arch-v10/drivers/Kconfig | 42 +- .../arch/cris/arch-v10/drivers/axisflashmap.c | 8 +- trunk/arch/cris/arch-v10/drivers/ds1302.c | 131 +- trunk/arch/cris/arch-v10/drivers/gpio.c | 15 +- trunk/arch/cris/arch-v10/kernel/entry.S | 77 +- trunk/arch/cris/arch-v10/kernel/fasttimer.c | 327 +-- .../cris/arch-v10/kernel/io_interface_mux.c | 2 +- trunk/arch/cris/arch-v10/kernel/irq.c | 59 +- trunk/arch/cris/arch-v10/kernel/setup.c | 5 +- trunk/arch/cris/arch-v10/kernel/signal.c | 251 +- trunk/arch/cris/arch-v10/kernel/time.c | 12 +- trunk/arch/cris/arch-v10/lib/memset.c | 82 +- trunk/arch/cris/arch-v10/lib/string.c | 54 +- trunk/arch/cris/arch-v10/lib/usercopy.c | 314 +-- trunk/arch/cris/arch-v32/drivers/Kconfig | 14 - .../arch/cris/arch-v32/drivers/axisflashmap.c | 9 +- .../arch/cris/arch-v32/drivers/sync_serial.c | 2 +- trunk/arch/cris/arch-v32/kernel/cache.c | 33 + trunk/arch/cris/arch-v32/kernel/cacheflush.S | 94 + trunk/arch/cris/arch-v32/kernel/io.c | 2 +- trunk/arch/cris/arch-v32/kernel/setup.c | 6 +- trunk/arch/cris/defconfig | 78 +- trunk/arch/cris/kernel/crisksyms.c | 17 +- trunk/arch/cris/kernel/irq.c | 6 +- trunk/arch/cris/kernel/process.c | 5 + trunk/arch/cris/kernel/ptrace.c | 6 +- trunk/arch/cris/kernel/sys_cris.c | 1 + trunk/arch/cris/kernel/time.c | 10 +- trunk/arch/frv/kernel/break.S | 2 +- trunk/arch/frv/kernel/entry.S | 2 +- trunk/arch/frv/kernel/vmlinux.lds.S | 27 +- trunk/arch/frv/mb93090-mb00/pci-dma.c | 3 +- trunk/arch/frv/mm/init.c | 2 +- trunk/arch/frv/mm/tlb-miss.S | 2 +- trunk/arch/h8300/Kconfig | 2 +- trunk/arch/ia64/Makefile | 2 +- trunk/arch/ia64/configs/sn2_defconfig | 106 +- trunk/arch/ia64/hp/common/sba_iommu.c | 3 +- trunk/arch/ia64/hp/sim/boot/Makefile | 2 +- trunk/arch/ia64/hp/sim/boot/bootloader.lds | 3 +- trunk/arch/ia64/hp/sim/boot/fw-emu.c | 2 +- trunk/arch/ia64/ia32/binfmt_elf32.c | 28 +- trunk/arch/ia64/ia32/ia32priv.h | 1 - trunk/arch/ia64/kernel/.gitignore | 1 + trunk/arch/ia64/kernel/acpi.c | 10 +- trunk/arch/ia64/kernel/efi.c | 23 +- trunk/arch/ia64/kernel/gate.lds.S | 5 +- trunk/arch/ia64/kernel/head.S | 1 + trunk/arch/ia64/kernel/ia64_ksyms.c | 3 + trunk/arch/ia64/kernel/iosapic.c | 39 +- trunk/arch/ia64/kernel/irq.c | 6 +- trunk/arch/ia64/kernel/irq_ia64.c | 4 +- trunk/arch/ia64/kernel/kprobes.c | 29 +- trunk/arch/ia64/kernel/mca.c | 35 +- trunk/arch/ia64/kernel/msi_ia64.c | 2 +- trunk/arch/ia64/kernel/palinfo.c | 91 +- trunk/arch/ia64/kernel/patch.c | 3 - trunk/arch/ia64/kernel/perfmon.c | 4 +- trunk/arch/ia64/kernel/process.c | 7 +- trunk/arch/ia64/kernel/setup.c | 52 +- trunk/arch/ia64/kernel/signal.c | 18 +- trunk/arch/ia64/kernel/smpboot.c | 21 +- trunk/arch/ia64/kernel/uncached.c | 2 +- trunk/arch/ia64/kernel/vmlinux.lds.S | 3 +- trunk/arch/ia64/lib/Makefile | 4 +- trunk/arch/ia64/mm/contig.c | 74 +- trunk/arch/ia64/mm/init.c | 4 +- trunk/arch/ia64/mm/tlb.c | 20 +- trunk/arch/ia64/scripts/check-segrel.lds | 1 + trunk/arch/ia64/scripts/unwcheck.py | 0 trunk/arch/ia64/sn/kernel/bte.c | 4 +- trunk/arch/ia64/sn/kernel/bte_error.c | 8 +- trunk/arch/ia64/sn/kernel/io_common.c | 13 +- trunk/arch/ia64/sn/kernel/irq.c | 8 +- trunk/arch/ia64/sn/kernel/mca.c | 1 + trunk/arch/ia64/sn/kernel/xp_nofault.S | 10 +- trunk/arch/ia64/sn/kernel/xpc_main.c | 12 +- trunk/arch/ia64/sn/pci/tioce_provider.c | 2 +- trunk/arch/m32r/kernel/signal.c | 17 +- trunk/arch/m32r/kernel/syscall_table.S | 40 + trunk/arch/m68k/atari/atakeyb.c | 3 +- trunk/arch/mips/Kconfig | 71 +- trunk/arch/mips/Makefile | 2 +- trunk/arch/mips/au1000/Kconfig | 10 +- trunk/arch/mips/au1000/common/dbdma.c | 2 +- trunk/arch/mips/au1000/common/irq.c | 48 +- trunk/arch/mips/au1000/common/pci.c | 16 +- trunk/arch/mips/au1000/common/setup.c | 9 +- trunk/arch/mips/au1000/common/time.c | 22 +- trunk/arch/mips/au1000/mtx-1/Makefile | 3 + trunk/arch/mips/au1000/mtx-1/platform.c | 77 + trunk/arch/mips/au1000/pb1200/Makefile | 2 + trunk/arch/mips/au1000/pb1200/board_setup.c | 6 +- trunk/arch/mips/au1000/pb1200/irqmap.c | 102 +- trunk/arch/mips/basler/excite/excite_setup.c | 21 +- trunk/arch/mips/cobalt/time.c | 21 +- trunk/arch/mips/configs/bigsur_defconfig | 9 + trunk/arch/mips/configs/db1000_defconfig | 1 - trunk/arch/mips/configs/db1100_defconfig | 1 - trunk/arch/mips/configs/db1200_defconfig | 1 - trunk/arch/mips/configs/db1500_defconfig | 1 - trunk/arch/mips/configs/db1550_defconfig | 1 - trunk/arch/mips/configs/malta_defconfig | 8 + trunk/arch/mips/configs/pb1100_defconfig | 1 - trunk/arch/mips/configs/pb1500_defconfig | 1 - trunk/arch/mips/configs/pb1550_defconfig | 1 - .../arch/mips/configs/sb1250-swarm_defconfig | 2 +- trunk/arch/mips/gt64120/wrppmc/time.c | 6 - trunk/arch/mips/jazz/irq.c | 27 +- trunk/arch/mips/jmr3927/rbhma3100/setup.c | 83 +- trunk/arch/mips/kernel/Makefile | 7 + trunk/arch/mips/kernel/cevt-bcm1480.c | 153 ++ trunk/arch/mips/kernel/cevt-gt641xx.c | 12 +- trunk/arch/mips/kernel/cevt-r4k.c | 55 +- trunk/arch/mips/kernel/cevt-sb1250.c | 152 ++ trunk/arch/mips/kernel/cevt-txx9.c | 171 ++ trunk/arch/mips/kernel/cpu-probe.c | 5 + trunk/arch/mips/kernel/csrc-bcm1480.c | 54 + trunk/arch/mips/kernel/csrc-r4k.c | 33 + trunk/arch/mips/kernel/csrc-sb1250.c | 70 + trunk/arch/mips/kernel/genex.S | 2 +- trunk/arch/mips/kernel/head.S | 3 +- trunk/arch/mips/kernel/i8253.c | 25 +- trunk/arch/mips/kernel/irixsig.c | 9 +- trunk/arch/mips/kernel/irq-rm7000.c | 2 +- trunk/arch/mips/kernel/irq-rm9000.c | 2 +- trunk/arch/mips/kernel/irq_cpu.c | 2 +- trunk/arch/mips/kernel/proc.c | 2 + trunk/arch/mips/kernel/process.c | 3 +- trunk/arch/mips/kernel/ptrace.c | 18 +- trunk/arch/mips/kernel/ptrace32.c | 4 +- trunk/arch/mips/kernel/scall64-n32.S | 2 +- trunk/arch/mips/kernel/setup.c | 28 + trunk/arch/mips/kernel/smp-up.c | 67 + trunk/arch/mips/kernel/smtc.c | 57 +- trunk/arch/mips/kernel/syscall.c | 9 +- trunk/arch/mips/kernel/time.c | 180 +- trunk/arch/mips/kernel/traps.c | 74 +- trunk/arch/mips/kernel/vmlinux.lds.S | 32 +- trunk/arch/mips/kernel/vpe.c | 22 +- trunk/arch/mips/lasat/image/Makefile | 6 +- trunk/arch/mips/lasat/interrupt.c | 22 +- trunk/arch/mips/lasat/setup.c | 7 +- trunk/arch/mips/math-emu/ieee754.c | 2 + trunk/arch/mips/math-emu/ieee754dp.c | 2 + trunk/arch/mips/math-emu/ieee754sp.c | 2 + trunk/arch/mips/mips-boards/generic/display.c | 4 +- trunk/arch/mips/mips-boards/generic/reset.c | 10 +- trunk/arch/mips/mips-boards/generic/time.c | 52 +- trunk/arch/mips/mipssim/sim_time.c | 48 +- trunk/arch/mips/mm/c-r3k.c | 60 +- trunk/arch/mips/mm/c-r4k.c | 28 +- trunk/arch/mips/mm/cerr-sb1.c | 6 +- trunk/arch/mips/mm/dma-default.c | 39 +- trunk/arch/mips/mm/init.c | 45 +- trunk/arch/mips/oprofile/op_model_mipsxx.c | 44 +- trunk/arch/mips/pci/fixup-pmcmsp.c | 2 +- trunk/arch/mips/pci/fixup-sni.c | 23 +- trunk/arch/mips/pci/fixup-tb0219.c | 2 +- trunk/arch/mips/pci/ops-au1000.c | 53 +- trunk/arch/mips/pci/ops-mace.c | 7 + trunk/arch/mips/pci/ops-pmcmsp.c | 2 +- trunk/arch/mips/pci/pci-bcm1480.c | 6 +- trunk/arch/mips/pci/pci-ip32.c | 4 +- trunk/arch/mips/pci/pci-lasat.c | 32 +- trunk/arch/mips/pci/pci-vr41xx.c | 1 + trunk/arch/mips/pci/pci.c | 2 + trunk/arch/mips/philips/pnx8550/common/time.c | 109 +- trunk/arch/mips/pmc-sierra/Kconfig | 2 + .../arch/mips/pmc-sierra/msp71xx/msp_serial.c | 2 +- trunk/arch/mips/qemu/Makefile | 3 +- trunk/arch/mips/qemu/q-console.c | 26 + trunk/arch/mips/qemu/q-firmware.c | 6 + trunk/arch/mips/qemu/q-irq.c | 3 +- trunk/arch/mips/qemu/q-setup.c | 3 - trunk/arch/mips/sgi-ip22/ip22-eisa.c | 134 +- trunk/arch/mips/sgi-ip22/ip22-nvram.c | 40 +- trunk/arch/mips/sgi-ip22/ip22-setup.c | 19 - trunk/arch/mips/sgi-ip27/ip27-timer.c | 11 +- trunk/arch/mips/sgi-ip32/ip32-irq.c | 153 +- trunk/arch/mips/sgi-ip32/ip32-platform.c | 20 +- trunk/arch/mips/sibyte/Kconfig | 14 + trunk/arch/mips/sibyte/bcm1480/irq.c | 61 +- trunk/arch/mips/sibyte/bcm1480/time.c | 162 +- trunk/arch/mips/sibyte/sb1250/irq.c | 38 - trunk/arch/mips/sibyte/sb1250/time.c | 194 +- trunk/arch/mips/sni/pcimt.c | 2 +- trunk/arch/mips/sni/time.c | 87 +- .../toshiba_rbtx4927/toshiba_rbtx4927_setup.c | 17 +- .../arch/mips/tx4938/toshiba_rbtx4938/setup.c | 19 +- trunk/arch/mips/vr41xx/Kconfig | 6 + trunk/arch/mips/vr41xx/common/icu.c | 2 + trunk/arch/parisc/Makefile | 2 +- trunk/arch/parisc/kernel/firmware.c | 88 +- trunk/arch/parisc/kernel/irq.c | 2 +- trunk/arch/parisc/kernel/parisc_ksyms.c | 22 + trunk/arch/parisc/kernel/pdc_cons.c | 11 +- trunk/arch/parisc/lib/Makefile | 2 +- trunk/arch/parisc/lib/libgcc/Makefile | 4 - trunk/arch/parisc/lib/libgcc/__ashldi3.c | 19 - trunk/arch/parisc/lib/libgcc/__ashrdi3.c | 19 - trunk/arch/parisc/lib/libgcc/__clzsi2.c | 30 - trunk/arch/parisc/lib/libgcc/__divdi3.c | 23 - trunk/arch/parisc/lib/libgcc/__divsi3.c | 23 - trunk/arch/parisc/lib/libgcc/__lshrdi3.c | 19 - trunk/arch/parisc/lib/libgcc/__moddi3.c | 23 - trunk/arch/parisc/lib/libgcc/__modsi3.c | 23 - trunk/arch/parisc/lib/libgcc/__muldi3.c | 22 - trunk/arch/parisc/lib/libgcc/__udivdi3.c | 7 - trunk/arch/parisc/lib/libgcc/__udivmoddi4.c | 31 - trunk/arch/parisc/lib/libgcc/__udivmodsi4.c | 31 - trunk/arch/parisc/lib/libgcc/__udivsi3.c | 7 - trunk/arch/parisc/lib/libgcc/__umoddi3.c | 10 - trunk/arch/parisc/lib/libgcc/__umodsi3.c | 10 - trunk/arch/parisc/lib/libgcc/__umulsidi3.c | 46 - trunk/arch/parisc/lib/libgcc/libgcc.h | 32 - trunk/arch/parisc/lib/milli/Makefile | 1 - trunk/arch/parisc/lib/milli/divI.S | 254 -- trunk/arch/parisc/lib/milli/divU.S | 235 -- trunk/arch/parisc/lib/milli/div_const.S | 682 ------ trunk/arch/parisc/lib/milli/dyncall.S | 32 - trunk/arch/parisc/lib/milli/milli.S | 2071 ----------------- trunk/arch/parisc/lib/milli/milli.h | 165 -- trunk/arch/parisc/lib/milli/mulI.S | 474 ---- trunk/arch/parisc/lib/milli/remI.S | 185 -- trunk/arch/parisc/lib/milli/remU.S | 148 -- trunk/arch/powerpc/Kconfig | 5 + trunk/arch/powerpc/Makefile | 3 + trunk/arch/powerpc/boot/dts/mpc832x_mds.dts | 16 +- trunk/arch/powerpc/boot/dts/mpc834x_mds.dts | 9 + trunk/arch/powerpc/boot/dts/mpc836x_mds.dts | 9 + trunk/arch/powerpc/boot/dts/mpc8544ds.dts | 20 +- trunk/arch/powerpc/boot/dts/mpc8572ds.dts | 108 +- trunk/arch/powerpc/boot/dts/mpc8641_hpcn.dts | 126 +- trunk/arch/powerpc/boot/dts/sequoia.dts | 5 + trunk/arch/powerpc/boot/dts/walnut.dts | 4 +- trunk/arch/powerpc/boot/wrapper | 43 +- trunk/arch/powerpc/configs/bamboo_defconfig | 22 +- trunk/arch/powerpc/configs/cell_defconfig | 176 +- trunk/arch/powerpc/configs/celleb_defconfig | 170 +- trunk/arch/powerpc/configs/chrp32_defconfig | 163 +- trunk/arch/powerpc/configs/ebony_defconfig | 25 +- trunk/arch/powerpc/configs/ep88xc_defconfig | 92 +- trunk/arch/powerpc/configs/g5_defconfig | 150 +- trunk/arch/powerpc/configs/holly_defconfig | 136 +- trunk/arch/powerpc/configs/iseries_defconfig | 123 +- trunk/arch/powerpc/configs/kilauea_defconfig | 79 +- .../powerpc/configs/linkstation_defconfig | 152 +- trunk/arch/powerpc/configs/lite5200_defconfig | 119 +- trunk/arch/powerpc/configs/maple_defconfig | 126 +- .../powerpc/configs/mpc7448_hpc2_defconfig | 137 +- .../powerpc/configs/mpc8272_ads_defconfig | 106 +- .../powerpc/configs/mpc8313_rdb_defconfig | 173 +- .../powerpc/configs/mpc832x_mds_defconfig | 185 +- .../powerpc/configs/mpc832x_rdb_defconfig | 204 +- .../powerpc/configs/mpc834x_itx_defconfig | 158 +- .../powerpc/configs/mpc834x_itxgp_defconfig | 249 +- .../powerpc/configs/mpc834x_mds_defconfig | 179 +- .../powerpc/configs/mpc836x_mds_defconfig | 185 +- .../powerpc/configs/mpc8540_ads_defconfig | 101 +- .../arch/powerpc/configs/mpc8544_ds_defconfig | 130 +- .../powerpc/configs/mpc8560_ads_defconfig | 104 +- .../arch/powerpc/configs/mpc8568mds_defconfig | 191 +- .../arch/powerpc/configs/mpc8572_ds_defconfig | 130 +- .../powerpc/configs/mpc85xx_cds_defconfig | 126 +- .../powerpc/configs/mpc8610_hpcd_defconfig | 114 +- .../powerpc/configs/mpc8641_hpcn_defconfig | 131 +- .../arch/powerpc/configs/mpc866_ads_defconfig | 107 +- .../arch/powerpc/configs/mpc885_ads_defconfig | 98 +- trunk/arch/powerpc/configs/pasemi_defconfig | 312 ++- trunk/arch/powerpc/configs/pmac32_defconfig | 217 +- trunk/arch/powerpc/configs/ppc64_defconfig | 250 +- trunk/arch/powerpc/configs/pq2fads_defconfig | 148 +- .../arch/powerpc/configs/prpmc2800_defconfig | 150 +- trunk/arch/powerpc/configs/ps3_defconfig | 179 +- trunk/arch/powerpc/configs/pseries_defconfig | 156 +- trunk/arch/powerpc/configs/sequoia_defconfig | 111 +- trunk/arch/powerpc/configs/walnut_defconfig | 22 +- trunk/arch/powerpc/kernel/asm-offsets.c | 7 +- trunk/arch/powerpc/kernel/btext.c | 4 +- trunk/arch/powerpc/kernel/cputable.c | 36 +- trunk/arch/powerpc/kernel/entry_32.S | 29 + trunk/arch/powerpc/kernel/head_32.S | 2 +- trunk/arch/powerpc/kernel/head_40x.S | 2 +- trunk/arch/powerpc/kernel/head_44x.S | 2 +- trunk/arch/powerpc/kernel/head_64.S | 2 +- trunk/arch/powerpc/kernel/head_fsl_booke.S | 2 +- trunk/arch/powerpc/kernel/idle.c | 2 +- trunk/arch/powerpc/kernel/misc_32.S | 32 +- trunk/arch/powerpc/kernel/ppc_ksyms.c | 12 - trunk/arch/powerpc/kernel/prom.c | 12 + trunk/arch/powerpc/kernel/prom_init.c | 41 +- trunk/arch/powerpc/kernel/rtas.c | 99 +- trunk/arch/powerpc/kernel/setup_64.c | 19 +- trunk/arch/powerpc/kernel/swsusp_32.S | 2 + trunk/arch/powerpc/kernel/time.c | 42 +- trunk/arch/powerpc/kernel/vdso.c | 11 + trunk/arch/powerpc/kernel/vdso32/cacheflush.S | 41 +- trunk/arch/powerpc/kernel/vdso64/cacheflush.S | 41 +- trunk/arch/powerpc/kernel/vmlinux.lds.S | 3 +- trunk/arch/powerpc/math-emu/op-2.h | 3 +- trunk/arch/powerpc/mm/40x_mmu.c | 17 +- trunk/arch/powerpc/mm/44x_mmu.c | 1 + trunk/arch/powerpc/mm/fault.c | 2 +- trunk/arch/powerpc/mm/hash_low_64.S | 5 +- trunk/arch/powerpc/mm/hash_utils_64.c | 7 +- trunk/arch/powerpc/mm/init_64.c | 16 +- trunk/arch/powerpc/mm/mem.c | 2 +- trunk/arch/powerpc/mm/mmu_decl.h | 6 +- trunk/arch/powerpc/mm/slb.c | 43 +- trunk/arch/powerpc/mm/stab.c | 1 + trunk/arch/powerpc/mm/tlb_64.c | 2 - trunk/arch/powerpc/platforms/40x/walnut.c | 3 +- trunk/arch/powerpc/platforms/44x/bamboo.c | 3 +- trunk/arch/powerpc/platforms/44x/ebony.c | 3 +- trunk/arch/powerpc/platforms/44x/sequoia.c | 3 +- .../arch/powerpc/platforms/83xx/mpc832x_mds.c | 31 +- .../arch/powerpc/platforms/83xx/mpc832x_rdb.c | 14 +- .../arch/powerpc/platforms/83xx/mpc834x_mds.c | 24 - .../arch/powerpc/platforms/83xx/mpc836x_mds.c | 55 +- trunk/arch/powerpc/platforms/83xx/usb.c | 8 +- trunk/arch/powerpc/platforms/cell/Kconfig | 5 + trunk/arch/powerpc/platforms/cell/Makefile | 1 + trunk/arch/powerpc/platforms/cell/interrupt.c | 24 +- trunk/arch/powerpc/platforms/cell/smp.c | 1 + .../arch/powerpc/platforms/cell/spu_notify.c | 67 + .../powerpc/platforms/cell/spu_syscalls.c | 14 + .../powerpc/platforms/cell/spufs/context.c | 16 - .../arch/powerpc/platforms/cell/spufs/inode.c | 1 + .../arch/powerpc/platforms/cell/spufs/sched.c | 26 +- .../powerpc/platforms/cell/spufs/syscalls.c | 1 + trunk/arch/powerpc/platforms/celleb/setup.c | 1 + trunk/arch/powerpc/platforms/chrp/pci.c | 21 +- .../powerpc/platforms/embedded6xx/prpmc2800.c | 1 + trunk/arch/powerpc/platforms/iseries/irq.h | 4 + .../arch/powerpc/platforms/iseries/lpevents.c | 17 +- trunk/arch/powerpc/platforms/iseries/setup.c | 4 - trunk/arch/powerpc/platforms/iseries/vio.c | 10 +- trunk/arch/powerpc/platforms/pasemi/setup.c | 2 +- trunk/arch/powerpc/platforms/powermac/pci.c | 11 +- trunk/arch/powerpc/platforms/ps3/Kconfig | 2 +- trunk/arch/powerpc/platforms/ps3/os-area.c | 40 +- trunk/arch/powerpc/platforms/pseries/Kconfig | 2 +- trunk/arch/powerpc/platforms/pseries/eeh.c | 13 +- .../powerpc/platforms/pseries/eeh_driver.c | 18 +- .../arch/powerpc/platforms/pseries/firmware.c | 1 + .../powerpc/platforms/pseries/hotplug-cpu.c | 2 + trunk/arch/powerpc/platforms/pseries/lpar.c | 1 + trunk/arch/powerpc/platforms/pseries/msi.c | 6 + trunk/arch/powerpc/sysdev/cpm2_common.c | 3 +- trunk/arch/powerpc/sysdev/cpm_common.c | 4 +- trunk/arch/powerpc/sysdev/i8259.c | 1 + trunk/arch/powerpc/sysdev/mv64x60_pci.c | 10 +- trunk/arch/powerpc/sysdev/uic.c | 18 +- trunk/arch/ppc/configs/ml300_defconfig | 2 +- trunk/arch/ppc/configs/ml403_defconfig | 2 +- trunk/arch/ppc/kernel/entry.S | 29 + trunk/arch/ppc/kernel/misc.S | 31 +- trunk/arch/ppc/kernel/setup.c | 7 + trunk/arch/ppc/mm/44x_mmu.c | 1 + trunk/arch/ppc/mm/4xx_mmu.c | 17 +- trunk/arch/ppc/mm/fault.c | 2 +- trunk/arch/ppc/mm/init.c | 2 +- trunk/arch/ppc/mm/mmu_decl.h | 6 +- trunk/arch/ppc/platforms/4xx/ebony.c | 2 +- trunk/arch/ppc/platforms/4xx/luan.c | 7 +- trunk/arch/ppc/platforms/4xx/ocotea.c | 2 +- trunk/arch/ppc/platforms/4xx/taishan.c | 2 +- .../platforms/4xx/xparameters/xparameters.h | 8 + trunk/arch/ppc/platforms/4xx/yucca.c | 1 + trunk/arch/ppc/syslib/i8259.c | 1 + trunk/arch/ppc/syslib/m8260_setup.c | 13 +- trunk/arch/ppc/syslib/virtex_devices.c | 31 + trunk/arch/s390/Kconfig | 2 +- trunk/arch/s390/appldata/appldata.h | 1 - trunk/arch/s390/appldata/appldata_base.c | 74 +- trunk/arch/s390/appldata/appldata_mem.c | 1 - trunk/arch/s390/appldata/appldata_net_sum.c | 1 - trunk/arch/s390/appldata/appldata_os.c | 1 - trunk/arch/s390/kernel/early.c | 4 +- trunk/arch/s390/kernel/entry.S | 122 +- trunk/arch/s390/kernel/entry64.S | 114 +- trunk/arch/s390/kernel/process.c | 8 +- trunk/arch/s390/kernel/setup.c | 10 +- trunk/arch/s390/kernel/smp.c | 62 +- trunk/arch/s390/kernel/time.c | 6 +- trunk/arch/s390/kernel/traps.c | 1 + trunk/arch/s390/kernel/vtime.c | 8 +- trunk/arch/s390/mm/cmm.c | 3 - trunk/arch/sh/Kconfig | 18 +- trunk/arch/sh/Kconfig.debug | 11 +- trunk/arch/sh/Makefile | 2 +- .../arch/sh/boards/renesas/hs7751rvoip/irq.c | 1 + .../sh/boards/renesas/hs7751rvoip/setup.c | 19 +- trunk/arch/sh/boards/renesas/r7780rp/setup.c | 71 + .../arch/sh/boards/renesas/rts7751r2d/setup.c | 2 + .../sh/boards/renesas/sh7710voipgw/setup.c | 1 - trunk/arch/sh/boards/se/7206/irq.c | 1 - trunk/arch/sh/boards/se/770x/setup.c | 1 + trunk/arch/sh/boards/se/7722/setup.c | 12 +- trunk/arch/sh/boards/se/7780/setup.c | 8 + trunk/arch/sh/boards/snapgear/Makefile | 3 +- trunk/arch/sh/boards/snapgear/rtc.c | 309 --- trunk/arch/sh/boards/snapgear/setup.c | 16 +- trunk/arch/sh/boot/Makefile | 2 +- trunk/arch/sh/cchips/hd6446x/Makefile | 2 + trunk/arch/sh/cchips/voyagergx/Makefile | 1 + trunk/arch/sh/configs/r7780mp_defconfig | 287 +-- trunk/arch/sh/configs/r7785rp_defconfig | 305 +-- trunk/arch/sh/drivers/pci/Makefile | 1 - trunk/arch/sh/drivers/pci/ops-r7780rp.c | 4 +- trunk/arch/sh/drivers/pci/ops-se7780.c | 4 +- trunk/arch/sh/drivers/pci/pci-sh7780.h | 2 +- trunk/arch/sh/drivers/pci/pci-st40.c | 488 ---- trunk/arch/sh/drivers/pci/pci-st40.h | 136 -- trunk/arch/sh/kernel/Makefile | 3 +- trunk/arch/sh/kernel/cpu/irq/ipr.c | 9 - trunk/arch/sh/kernel/cpu/sh3/ex.S | 2 +- trunk/arch/sh/kernel/cpu/sh4/probe.c | 8 - trunk/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 27 + trunk/arch/sh/kernel/irq.c | 9 +- trunk/arch/sh/kernel/kgdb_stub.c | 9 +- trunk/arch/sh/kernel/setup.c | 47 +- trunk/arch/sh/kernel/sh_ksyms.c | 2 - trunk/arch/sh/kernel/vmlinux.lds.S | 201 +- trunk/arch/sh/kernel/vsyscall/vsyscall.lds.S | 5 +- trunk/arch/sh/lib/Makefile | 2 + trunk/arch/sh/mm/Kconfig | 21 +- trunk/arch/sh/mm/Makefile | 2 + trunk/arch/sh/mm/clear_page.S | 45 - trunk/arch/sh/mm/copy_page.S | 65 +- trunk/arch/sh/mm/fault.c | 33 +- trunk/arch/sh/mm/pg-sh4.c | 75 +- trunk/arch/sh/oprofile/Makefile | 1 + trunk/arch/sh/oprofile/op_model_sh7750.c | 22 +- trunk/arch/sh/tools/mach-types | 29 +- trunk/arch/sh64/Kconfig | 2 +- trunk/arch/sh64/configs/cayman_defconfig | 140 +- trunk/arch/sh64/configs/harp_defconfig | 105 +- trunk/arch/sh64/configs/sim_defconfig | 68 +- trunk/arch/sh64/kernel/process.c | 10 +- trunk/arch/sh64/kernel/traps.c | 5 - trunk/arch/sparc/kernel/devices.c | 4 +- trunk/arch/sparc/kernel/irq.c | 1 - trunk/arch/sparc/kernel/pcic.c | 8 +- trunk/arch/sparc/kernel/ptrace.c | 2 +- trunk/arch/sparc64/Kconfig | 2 +- trunk/arch/sparc64/defconfig | 74 +- trunk/arch/sparc64/kernel/chmc.c | 16 +- trunk/arch/sparc64/kernel/ds.c | 1 - trunk/arch/sparc64/kernel/entry.S | 12 + trunk/arch/sparc64/kernel/isa.c | 2 + trunk/arch/sparc64/kernel/ldc.c | 15 +- trunk/arch/sparc64/kernel/module.c | 1 - trunk/arch/sparc64/kernel/pci.c | 16 + trunk/arch/sparc64/kernel/pci_schizo.c | 2 +- trunk/arch/sparc64/kernel/pci_sun4v.c | 4 + trunk/arch/sparc64/kernel/smp.c | 24 +- trunk/arch/sparc64/kernel/sparc64_ksyms.c | 2 +- trunk/arch/sparc64/kernel/sys_sparc32.c | 1 - trunk/arch/sparc64/kernel/sys_sunos32.c | 1 - trunk/arch/sparc64/kernel/time.c | 4 +- trunk/arch/sparc64/mm/init.c | 29 +- trunk/arch/sparc64/mm/tsb.c | 4 +- trunk/arch/sparc64/mm/ultra.S | 7 - trunk/arch/um/Kconfig.i386 | 9 +- trunk/arch/um/Makefile | 13 +- trunk/arch/um/Makefile-i386 | 10 +- trunk/arch/um/Makefile-x86_64 | 5 +- trunk/arch/um/drivers/chan_user.c | 11 +- trunk/arch/um/drivers/harddog_user.c | 4 +- trunk/arch/um/drivers/net_kern.c | 16 +- trunk/arch/um/drivers/net_user.c | 2 +- trunk/arch/um/drivers/slip_user.c | 12 +- trunk/arch/um/drivers/slirp_user.c | 15 +- trunk/arch/um/drivers/ubd_kern.c | 3 +- trunk/arch/um/drivers/ubd_user.c | 3 +- trunk/arch/um/include/os.h | 2 +- trunk/arch/um/include/user.h | 13 +- trunk/arch/um/kernel/irq.c | 13 +- trunk/arch/um/kernel/mem.c | 2 +- trunk/arch/um/kernel/skas/clone.c | 1 - trunk/arch/um/os-Linux/aio.c | 4 +- .../arch/um/os-Linux/drivers/ethertap_user.c | 10 +- trunk/arch/um/os-Linux/drivers/tuntap_user.c | 2 +- trunk/arch/um/os-Linux/file.c | 3 +- trunk/arch/um/os-Linux/helper.c | 38 +- trunk/arch/um/os-Linux/process.c | 4 +- trunk/arch/um/os-Linux/skas/process.c | 12 +- trunk/arch/um/os-Linux/time.c | 55 +- trunk/arch/um/os-Linux/util.c | 2 +- trunk/arch/um/sys-i386/ptrace.c | 8 +- trunk/arch/um/sys-x86_64/ptrace.c | 4 +- trunk/arch/x86/{Kconfig.i386 => Kconfig} | 569 +++-- trunk/arch/x86/Kconfig.cpu | 121 +- trunk/arch/x86/Kconfig.debug | 8 +- trunk/arch/x86/Kconfig.x86_64 | 844 ------- trunk/arch/x86/Makefile | 15 +- trunk/arch/x86/Makefile_32 | 8 +- trunk/arch/x86/Makefile_64 | 8 +- trunk/arch/x86/boot/Makefile | 6 +- trunk/arch/x86/boot/compressed/head_32.S | 12 +- trunk/arch/x86/boot/compressed/head_64.S | 7 + trunk/arch/x86/boot/cpucheck.c | 6 - trunk/arch/x86/boot/header.S | 41 +- trunk/arch/x86/boot/pmjump.S | 8 +- trunk/arch/x86/configs/x86_64_defconfig | 2 +- trunk/arch/x86/ia32/ia32entry.S | 19 +- trunk/arch/x86/ia32/ptrace32.c | 10 +- trunk/arch/x86/kernel/Makefile_32 | 3 +- trunk/arch/x86/kernel/Makefile_64 | 4 +- trunk/arch/x86/kernel/acpi/boot.c | 32 + trunk/arch/x86/kernel/acpi/processor.c | 6 +- trunk/arch/x86/kernel/acpi/sleep_64.c | 3 - trunk/arch/x86/kernel/acpi/wakeup_32.S | 4 - trunk/arch/x86/kernel/aperture_64.c | 15 +- trunk/arch/x86/kernel/apic_32.c | 4 +- trunk/arch/x86/kernel/apm_32.c | 10 +- trunk/arch/x86/kernel/asm-offsets_64.c | 10 + .../cpu/cpufreq/{Kconfig_32 => Kconfig} | 69 +- trunk/arch/x86/kernel/cpu/cpufreq/Kconfig_64 | 108 - .../arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 90 +- .../arch/x86/kernel/cpu/cpufreq/powernow-k8.h | 20 +- trunk/arch/x86/kernel/cpu/intel_cacheinfo.c | 3 +- trunk/arch/x86/kernel/cpu/mcheck/mce_64.c | 20 +- trunk/arch/x86/kernel/cpu/mtrr/main.c | 6 +- trunk/arch/x86/kernel/cpu/proc.c | 18 +- trunk/arch/x86/kernel/crash.c | 4 + trunk/arch/x86/kernel/early-quirks.c | 14 +- trunk/arch/x86/kernel/head_32.S | 12 +- trunk/arch/x86/kernel/hpet.c | 14 + trunk/arch/x86/kernel/i386_ksyms_32.c | 2 + trunk/arch/x86/kernel/i387_64.c | 9 +- trunk/arch/x86/kernel/io_apic_32.c | 49 +- trunk/arch/x86/kernel/io_apic_64.c | 40 +- trunk/arch/x86/kernel/kprobes_32.c | 11 +- trunk/arch/x86/kernel/kprobes_64.c | 56 +- trunk/arch/x86/kernel/machine_kexec_64.c | 2 + trunk/arch/x86/kernel/nmi_32.c | 16 +- trunk/arch/x86/kernel/nmi_64.c | 3 +- trunk/arch/x86/kernel/paravirt_32.c | 4 +- trunk/arch/x86/kernel/pci-calgary_64.c | 2 +- trunk/arch/x86/kernel/pci-dma_64.c | 12 +- trunk/arch/x86/kernel/pci-gart_64.c | 20 +- trunk/arch/x86/kernel/pci-nommu_64.c | 2 +- trunk/arch/x86/kernel/pci-swiotlb_64.c | 2 +- trunk/arch/x86/kernel/process_32.c | 13 +- trunk/arch/x86/kernel/process_64.c | 11 + trunk/arch/x86/kernel/reboot_32.c | 4 + trunk/arch/x86/kernel/reboot_64.c | 6 +- trunk/arch/x86/kernel/reboot_fixups_32.c | 1 + trunk/arch/x86/kernel/setup_32.c | 5 +- trunk/arch/x86/kernel/setup_64.c | 19 +- trunk/arch/x86/kernel/smp_32.c | 8 +- trunk/arch/x86/kernel/smpboot_32.c | 6 +- trunk/arch/x86/kernel/smpboot_64.c | 2 +- trunk/arch/x86/kernel/suspend_64.c | 39 +- trunk/arch/x86/kernel/time_64.c | 41 +- trunk/arch/x86/kernel/topology.c | 5 +- trunk/arch/x86/kernel/traps_32.c | 16 +- trunk/arch/x86/kernel/traps_64.c | 11 + trunk/arch/x86/lguest/Kconfig | 1 + trunk/arch/x86/lguest/boot.c | 69 +- trunk/arch/x86/lib/delay_32.c | 3 + trunk/arch/x86/lib/delay_64.c | 11 +- trunk/arch/x86/mach-voyager/voyager_cat.c | 2 +- trunk/arch/x86/mach-voyager/voyager_smp.c | 8 +- trunk/arch/x86/mm/discontig_32.c | 4 +- trunk/arch/x86/mm/fault_32.c | 5 + trunk/arch/x86/mm/fault_64.c | 5 + trunk/arch/x86/mm/init_64.c | 8 +- trunk/arch/x86/oprofile/op_model_athlon.c | 22 +- trunk/arch/x86/pci/acpi.c | 8 +- trunk/arch/x86/pci/common.c | 16 + trunk/arch/x86/vdso/Makefile | 2 +- trunk/arch/x86/vdso/vgetcpu.c | 19 +- trunk/arch/x86/xen/enlighten.c | 2 +- trunk/arch/x86/xen/mmu.c | 4 + trunk/arch/xtensa/Kconfig | 2 +- trunk/arch/xtensa/platform-iss/network.c | 4 +- trunk/block/as-iosched.c | 11 +- trunk/block/blktrace.c | 90 +- trunk/block/cfq-iosched.c | 49 +- trunk/block/compat_ioctl.c | 2 +- trunk/block/deadline-iosched.c | 57 +- trunk/block/elevator.c | 3 +- trunk/block/genhd.c | 1 + trunk/block/ll_rw_blk.c | 112 +- trunk/block/noop-iosched.c | 4 +- trunk/block/scsi_ioctl.c | 4 +- trunk/crypto/algapi.c | 6 +- trunk/crypto/anubis.c | 1 - trunk/crypto/authenc.c | 12 +- trunk/crypto/blowfish.c | 1 - trunk/crypto/compress.c | 1 - trunk/crypto/crypto_null.c | 1 - trunk/crypto/fcrypt.c | 88 +- trunk/crypto/khazad.c | 1 - trunk/crypto/sha1_generic.c | 1 - trunk/crypto/sha256_generic.c | 1 - trunk/crypto/sha512.c | 1 - trunk/crypto/tea.c | 1 - trunk/crypto/tgr192.c | 1 - trunk/crypto/wp512.c | 1 - trunk/drivers/acpi/Kconfig | 29 +- trunk/drivers/acpi/Makefile | 2 +- trunk/drivers/acpi/ac.c | 54 +- trunk/drivers/acpi/battery.c | 203 +- trunk/drivers/acpi/bus.c | 15 +- trunk/drivers/acpi/button.c | 37 +- trunk/drivers/acpi/dispatcher/dsobject.c | 91 +- trunk/drivers/acpi/ec.c | 226 +- trunk/drivers/acpi/events/evregion.c | 8 +- trunk/drivers/acpi/fan.c | 72 +- trunk/drivers/acpi/numa.c | 4 +- trunk/drivers/acpi/osl.c | 25 +- trunk/drivers/acpi/pci_bind.c | 3 - trunk/drivers/acpi/pci_irq.c | 9 + trunk/drivers/acpi/power.c | 63 +- trunk/drivers/acpi/processor_core.c | 33 +- trunk/drivers/acpi/processor_idle.c | 135 +- trunk/drivers/acpi/processor_throttling.c | 318 ++- trunk/drivers/acpi/sbs.c | 91 +- trunk/drivers/acpi/sbshc.c | 17 +- trunk/drivers/acpi/sbshc.h | 6 + trunk/drivers/acpi/scan.c | 6 + trunk/drivers/acpi/sleep/main.c | 5 +- trunk/drivers/acpi/tables/tbutils.c | 2 +- trunk/drivers/acpi/toshiba_acpi.c | 3 + trunk/drivers/acpi/video.c | 159 +- trunk/drivers/ata/ahci.c | 274 ++- trunk/drivers/ata/ata_piix.c | 136 +- trunk/drivers/ata/libata-acpi.c | 383 ++- trunk/drivers/ata/libata-core.c | 697 ++++-- trunk/drivers/ata/libata-eh.c | 342 ++- trunk/drivers/ata/libata-pmp.c | 12 +- trunk/drivers/ata/libata-scsi.c | 147 +- trunk/drivers/ata/libata-sff.c | 7 +- trunk/drivers/ata/libata.h | 10 +- trunk/drivers/ata/pata_acpi.c | 4 +- trunk/drivers/ata/pata_ali.c | 20 + trunk/drivers/ata/pata_amd.c | 5 +- trunk/drivers/ata/pata_at32.c | 61 +- trunk/drivers/ata/pata_bf54x.c | 13 +- trunk/drivers/ata/pata_hpt37x.c | 53 +- trunk/drivers/ata/pata_isapnp.c | 11 +- trunk/drivers/ata/pata_ixp4xx_cf.c | 3 +- trunk/drivers/ata/pata_jmicron.c | 9 +- trunk/drivers/ata/pata_ns87415.c | 2 + trunk/drivers/ata/pata_optidma.c | 2 +- trunk/drivers/ata/pata_pcmcia.c | 12 +- trunk/drivers/ata/pata_pdc2027x.c | 2 +- trunk/drivers/ata/pata_pdc202xx_old.c | 19 +- trunk/drivers/ata/pata_platform.c | 35 +- trunk/drivers/ata/pata_scc.c | 13 +- trunk/drivers/ata/pata_serverworks.c | 11 +- trunk/drivers/ata/pata_sil680.c | 32 +- trunk/drivers/ata/pata_sis.c | 1 + trunk/drivers/ata/pata_via.c | 6 +- trunk/drivers/ata/pata_winbond.c | 2 +- trunk/drivers/ata/pdc_adma.c | 12 +- trunk/drivers/ata/sata_fsl.c | 159 +- trunk/drivers/ata/sata_inic162x.c | 4 +- trunk/drivers/ata/sata_mv.c | 100 +- trunk/drivers/ata/sata_nv.c | 154 +- trunk/drivers/ata/sata_promise.c | 142 +- trunk/drivers/ata/sata_qstor.c | 117 +- trunk/drivers/ata/sata_sil.c | 29 +- trunk/drivers/ata/sata_sil24.c | 78 +- trunk/drivers/ata/sata_sis.c | 64 +- trunk/drivers/ata/sata_svw.c | 10 +- trunk/drivers/ata/sata_sx4.c | 177 +- trunk/drivers/ata/sata_uli.c | 18 +- trunk/drivers/ata/sata_via.c | 20 +- trunk/drivers/ata/sata_vsc.c | 15 +- trunk/drivers/atm/firestream.c | 4 +- trunk/drivers/atm/fore200e.c | 3 +- trunk/drivers/atm/he.c | 10 +- trunk/drivers/atm/nicstar.c | 19 +- trunk/drivers/base/core.c | 10 +- trunk/drivers/base/dmapool.c | 1 - trunk/drivers/base/power/Makefile | 3 +- trunk/drivers/base/power/main.c | 8 +- trunk/drivers/base/power/power.h | 28 +- trunk/drivers/block/aoe/aoeblk.c | 26 +- trunk/drivers/block/cciss.c | 16 +- trunk/drivers/block/cciss_scsi.c | 14 +- trunk/drivers/block/cciss_scsi.h | 14 +- trunk/drivers/block/loop.c | 2 +- trunk/drivers/block/nbd.c | 3 +- trunk/drivers/block/paride/pf.c | 25 +- trunk/drivers/block/paride/pt.c | 2 +- trunk/drivers/block/pktcdvd.c | 13 +- trunk/drivers/block/rd.c | 13 + trunk/drivers/block/umem.c | 240 +- trunk/drivers/block/virtio_blk.c | 10 +- trunk/drivers/char/Kconfig | 24 +- trunk/drivers/char/agp/Kconfig | 4 +- trunk/drivers/char/agp/amd64-agp.c | 2 +- trunk/drivers/char/apm-emulation.c | 15 +- trunk/drivers/char/cs5535_gpio.c | 5 + trunk/drivers/char/drm/drmP.h | 2 - trunk/drivers/char/drm/drm_ioctl.c | 2 +- trunk/drivers/char/drm/drm_os_linux.h | 8 - trunk/drivers/char/drm/radeon_cp.c | 5 +- trunk/drivers/char/drm/radeon_drv.h | 1 + trunk/drivers/char/drm/savage_bci.c | 3 - trunk/drivers/char/drm/sis_mm.c | 1 + trunk/drivers/char/ipmi/ipmi_watchdog.c | 2 + trunk/drivers/char/mem.c | 4 +- trunk/drivers/char/pcmcia/cm4000_cs.c | 2 +- trunk/drivers/char/pcmcia/cm4040_cs.c | 2 +- trunk/drivers/char/random.c | 6 +- trunk/drivers/char/rtc.c | 52 +- trunk/drivers/char/tipar.c | 557 ----- trunk/drivers/char/tpm/tpm.c | 12 +- trunk/drivers/char/tpm/tpm_tis.c | 10 +- trunk/drivers/char/tty_ioctl.c | 191 +- trunk/drivers/char/virtio_console.c | 2 +- trunk/drivers/connector/cn_queue.c | 2 +- trunk/drivers/connector/connector.c | 7 +- trunk/drivers/cpufreq/cpufreq.c | 12 +- trunk/drivers/cpufreq/cpufreq_conservative.c | 153 +- trunk/drivers/cpufreq/cpufreq_stats.c | 2 +- trunk/drivers/cpuidle/cpuidle.c | 1 - trunk/drivers/cpuidle/governor.c | 3 - trunk/drivers/crypto/Kconfig | 2 +- trunk/drivers/crypto/geode-aes.c | 3 +- trunk/drivers/crypto/padlock-aes.c | 53 +- trunk/drivers/dma/Kconfig | 9 +- trunk/drivers/dma/dmaengine.c | 17 +- trunk/drivers/dma/ioat.c | 11 + trunk/drivers/dma/ioat_dca.c | 164 ++ trunk/drivers/dma/ioat_dma.c | 626 ++++- trunk/drivers/dma/ioatdma.h | 34 +- trunk/drivers/dma/ioatdma_hw.h | 33 +- trunk/drivers/dma/ioatdma_registers.h | 106 +- trunk/drivers/edac/i5000_edac.c | 2 +- trunk/drivers/firewire/fw-ohci.c | 212 +- trunk/drivers/firewire/fw-sbp2.c | 11 +- trunk/drivers/firmware/dmi-id.c | 19 +- trunk/drivers/hid/hid-input.c | 22 +- trunk/drivers/hid/usbhid/hid-quirks.c | 8 + trunk/drivers/hid/usbhid/hiddev.c | 2 +- trunk/drivers/hwmon/Kconfig | 10 + trunk/drivers/hwmon/Makefile | 1 + trunk/drivers/hwmon/abituguru3.c | 56 +- trunk/drivers/hwmon/applesmc.c | 107 +- trunk/drivers/hwmon/coretemp.c | 5 +- trunk/drivers/hwmon/f75375s.c | 170 +- trunk/drivers/hwmon/i5k_amb.c | 552 +++++ trunk/drivers/hwmon/ibmpex.c | 48 +- trunk/drivers/hwmon/lm70.c | 11 +- trunk/drivers/hwmon/sis5595.c | 59 +- trunk/drivers/hwmon/w83627ehf.c | 36 +- trunk/drivers/hwmon/w83627hf.c | 155 +- trunk/drivers/hwmon/w83781d.c | 3 +- trunk/drivers/i2c/busses/i2c-davinci.c | 4 +- trunk/drivers/i2c/busses/i2c-gpio.c | 1 + trunk/drivers/i2c/busses/i2c-omap.c | 6 +- trunk/drivers/i2c/busses/i2c-pasemi.c | 7 +- trunk/drivers/i2c/chips/eeprom.c | 37 +- trunk/drivers/i2c/chips/isp1301_omap.c | 2 +- trunk/drivers/i2c/i2c-core.c | 3 +- trunk/drivers/i2c/i2c-dev.c | 86 +- trunk/drivers/ide/Kconfig | 79 +- trunk/drivers/ide/Makefile | 2 +- trunk/drivers/ide/arm/icside.c | 16 +- trunk/drivers/ide/cris/ide-cris.c | 10 +- trunk/drivers/ide/ide-acpi.c | 38 +- trunk/drivers/ide/ide-cd.c | 101 +- trunk/drivers/ide/ide-cd.h | 3 +- trunk/drivers/ide/ide-disk.c | 33 +- trunk/drivers/ide/ide-dma.c | 70 +- trunk/drivers/ide/ide-io.c | 14 +- trunk/drivers/ide/ide-iops.c | 33 +- trunk/drivers/ide/ide-lib.c | 56 +- trunk/drivers/ide/ide-probe.c | 56 +- trunk/drivers/ide/ide-taskfile.c | 3 + trunk/drivers/ide/ide.c | 30 + trunk/drivers/ide/legacy/ali14xx.c | 7 +- trunk/drivers/ide/legacy/macide.c | 2 +- trunk/drivers/ide/legacy/q40ide.c | 2 +- trunk/drivers/ide/pci/aec62xx.c | 11 +- trunk/drivers/ide/pci/alim15x3.c | 5 + trunk/drivers/ide/pci/cmd64x.c | 7 +- trunk/drivers/ide/pci/cs5530.c | 3 +- trunk/drivers/ide/pci/cs5535.c | 2 +- trunk/drivers/ide/pci/cy82c693.c | 6 +- trunk/drivers/ide/pci/generic.c | 2 +- trunk/drivers/ide/pci/hpt366.c | 101 +- trunk/drivers/ide/pci/it821x.c | 3 +- trunk/drivers/ide/pci/jmicron.c | 3 +- trunk/drivers/ide/pci/pdc202xx_new.c | 3 +- trunk/drivers/ide/pci/piix.c | 2 + trunk/drivers/ide/pci/sc1200.c | 12 +- trunk/drivers/ide/pci/siimage.c | 45 +- trunk/drivers/ide/pci/sis5513.c | 2 +- trunk/drivers/ide/pci/trm290.c | 32 +- trunk/drivers/ide/ppc/pmac.c | 3 +- trunk/drivers/ide/setup-pci.c | 36 +- trunk/drivers/ieee1394/dma.c | 3 +- .../drivers/ieee1394/ieee1394_transactions.c | 2 - trunk/drivers/ieee1394/sbp2.c | 2 +- trunk/drivers/infiniband/core/fmr_pool.c | 8 +- .../infiniband/hw/cxgb3/iwch_provider.c | 1 + trunk/drivers/infiniband/hw/ehca/ehca_av.c | 52 +- .../drivers/infiniband/hw/ehca/ehca_classes.h | 2 +- trunk/drivers/infiniband/hw/ehca/ehca_hca.c | 20 +- .../drivers/infiniband/hw/ehca/ehca_iverbs.h | 3 + trunk/drivers/infiniband/hw/ehca/ehca_main.c | 18 +- trunk/drivers/infiniband/hw/ehca/ehca_qp.c | 33 +- trunk/drivers/infiniband/hw/ehca/hcp_if.c | 27 +- trunk/drivers/infiniband/hw/ehca/hipz_hw.h | 7 +- trunk/drivers/infiniband/hw/ipath/ipath_cq.c | 30 +- .../infiniband/hw/ipath/ipath_eeprom.c | 10 +- .../drivers/infiniband/hw/ipath/ipath_intr.c | 18 +- trunk/drivers/infiniband/hw/ipath/ipath_qp.c | 15 +- trunk/drivers/infiniband/hw/ipath/ipath_rc.c | 5 +- trunk/drivers/infiniband/hw/ipath/ipath_ruc.c | 14 +- trunk/drivers/infiniband/hw/ipath/ipath_srq.c | 44 +- .../drivers/infiniband/hw/ipath/ipath_verbs.c | 8 +- trunk/drivers/infiniband/hw/mlx4/cq.c | 2 +- trunk/drivers/infiniband/hw/mlx4/qp.c | 4 +- trunk/drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- .../drivers/infiniband/ulp/ipoib/ipoib_main.c | 3 + .../drivers/infiniband/ulp/iser/iser_memory.c | 6 +- trunk/drivers/infiniband/ulp/srp/ib_srp.c | 1 + trunk/drivers/input/misc/pcspkr.c | 2 +- trunk/drivers/input/serio/Kconfig | 2 +- trunk/drivers/input/touchscreen/ads7846.c | 13 +- trunk/drivers/isdn/capi/capidrv.c | 25 +- trunk/drivers/isdn/hisax/Kconfig | 18 +- trunk/drivers/isdn/hisax/avm_pci.c | 4 +- trunk/drivers/isdn/hisax/diva.c | 6 +- trunk/drivers/isdn/hisax/elsa.c | 6 +- trunk/drivers/isdn/hisax/gazel.c | 4 +- trunk/drivers/isdn/hisax/hfcscard.c | 3 +- trunk/drivers/isdn/hisax/niccy.c | 7 +- trunk/drivers/isdn/hisax/sedlbauer.c | 4 +- trunk/drivers/isdn/i4l/isdn_common.c | 8 +- trunk/drivers/isdn/i4l/isdn_net.c | 8 +- trunk/drivers/isdn/i4l/isdn_tty.c | 7 + trunk/drivers/isdn/sc/card.h | 2 +- trunk/drivers/isdn/sc/packet.c | 2 +- trunk/drivers/isdn/sc/shmem.c | 2 +- trunk/drivers/kvm/kvm_main.c | 3 +- trunk/drivers/kvm/svm.c | 19 +- trunk/drivers/kvm/x86_emulate.c | 32 +- trunk/drivers/leds/led-class.c | 14 +- trunk/drivers/leds/led-core.c | 4 +- trunk/drivers/leds/led-triggers.c | 57 +- trunk/drivers/leds/leds-gpio.c | 20 +- trunk/drivers/leds/leds-locomo.c | 2 +- trunk/drivers/leds/leds.h | 3 +- trunk/drivers/lguest/lguest_device.c | 5 +- trunk/drivers/lguest/lguest_user.c | 2 +- trunk/drivers/macintosh/adbhid.c | 3 +- trunk/drivers/macintosh/via-pmu.c | 1 + trunk/drivers/macintosh/windfarm_core.c | 10 +- trunk/drivers/md/Kconfig | 2 +- trunk/drivers/md/bitmap.c | 3 +- trunk/drivers/md/dm-crypt.c | 31 +- trunk/drivers/md/dm-ioctl.c | 12 +- trunk/drivers/md/dm-table.c | 26 +- trunk/drivers/md/dm.c | 31 +- trunk/drivers/md/dm.h | 7 + trunk/drivers/md/linear.c | 3 +- trunk/drivers/md/md.c | 4 +- trunk/drivers/md/multipath.c | 3 +- trunk/drivers/md/raid0.c | 3 +- trunk/drivers/md/raid1.c | 3 +- trunk/drivers/md/raid10.c | 3 +- trunk/drivers/md/raid5.c | 39 +- trunk/drivers/md/raid6algos.c | 4 +- trunk/drivers/md/raid6mmx.c | 2 +- trunk/drivers/md/raid6sse1.c | 2 +- trunk/drivers/md/raid6sse2.c | 4 +- trunk/drivers/md/raid6x86.h | 2 +- trunk/drivers/media/Kconfig | 1 + trunk/drivers/media/Makefile | 2 +- trunk/drivers/media/common/saa7146_core.c | 70 +- trunk/drivers/media/common/saa7146_video.c | 11 +- trunk/drivers/media/dvb/dvb-usb/Makefile | 3 + .../drivers/media/dvb/dvb-usb/dibusb-common.c | 4 + trunk/drivers/media/dvb/frontends/mt2131.c | 2 +- trunk/drivers/media/dvb/frontends/s5h1409.c | 107 +- trunk/drivers/media/dvb/frontends/stv0297.c | 22 +- trunk/drivers/media/dvb/frontends/tda10021.c | 6 + trunk/drivers/media/dvb/frontends/tda10086.c | 14 +- trunk/drivers/media/dvb/frontends/ves1820.c | 2 +- trunk/drivers/media/dvb/frontends/zl10353.c | 4 +- trunk/drivers/media/dvb/frontends/zl10353.h | 2 +- trunk/drivers/media/dvb/ttpci/Kconfig | 2 +- trunk/drivers/media/dvb/ttpci/av7110.c | 10 +- trunk/drivers/media/video/Kconfig | 2 +- trunk/drivers/media/video/bt866.c | 1 - trunk/drivers/media/video/bt8xx/bttv-cards.c | 2 +- trunk/drivers/media/video/bt8xx/bttv-driver.c | 19 +- trunk/drivers/media/video/bt8xx/bttvp.h | 2 +- trunk/drivers/media/video/cafe_ccic.c | 6 + trunk/drivers/media/video/cx23885/Kconfig | 3 +- trunk/drivers/media/video/cx88/Kconfig | 2 +- .../drivers/media/video/cx88/cx88-blackbird.c | 5 +- trunk/drivers/media/video/cx88/cx88-video.c | 5 +- trunk/drivers/media/video/em28xx/Kconfig | 2 +- trunk/drivers/media/video/em28xx/em28xx-i2c.c | 6 +- .../drivers/media/video/em28xx/em28xx-video.c | 8 +- trunk/drivers/media/video/ivtv/ivtv-i2c.c | 6 +- trunk/drivers/media/video/ivtv/ivtv-i2c.h | 4 +- trunk/drivers/media/video/ivtv/ivtv-streams.c | 2 +- trunk/drivers/media/video/planb.c | 8 +- .../media/video/pvrusb2/pvrusb2-ctrl.c | 2 +- .../media/video/pvrusb2/pvrusb2-main.c | 5 +- .../media/video/pvrusb2/pvrusb2-sysfs.c | 8 - trunk/drivers/media/video/saa5246a.c | 10 +- trunk/drivers/media/video/saa5249.c | 8 +- trunk/drivers/media/video/saa7134/Kconfig | 2 +- .../media/video/saa7134/saa7134-alsa.c | 32 +- .../media/video/saa7134/saa7134-cards.c | 7 +- .../media/video/saa7134/saa7134-core.c | 21 +- .../drivers/media/video/saa7134/saa7134-dvb.c | 1 + .../media/video/saa7134/saa7134-empress.c | 5 +- .../media/video/saa7134/saa7134-video.c | 5 +- trunk/drivers/media/video/tuner-core.c | 6 +- trunk/drivers/media/video/tvp5150.c | 27 +- trunk/drivers/media/video/videobuf-core.c | 263 ++- trunk/drivers/media/video/videobuf-vmalloc.c | 6 +- trunk/drivers/media/video/vivi.c | 1 + trunk/drivers/message/i2o/i2o_block.c | 4 +- trunk/drivers/mfd/sm501.c | 2 +- trunk/drivers/misc/fujitsu-laptop.c | 7 +- trunk/drivers/misc/ioc4.c | 10 +- trunk/drivers/misc/thinkpad_acpi.c | 235 +- trunk/drivers/misc/thinkpad_acpi.h | 4 +- trunk/drivers/mmc/card/block.c | 22 +- trunk/drivers/mmc/card/queue.c | 5 +- trunk/drivers/mmc/card/sdio_uart.c | 2 +- trunk/drivers/mmc/core/core.c | 1 - trunk/drivers/mmc/core/mmc_ops.c | 1 - trunk/drivers/mmc/core/sd_ops.c | 1 - trunk/drivers/mmc/core/sdio_ops.c | 1 - trunk/drivers/mmc/host/au1xmmc.c | 2 +- trunk/drivers/mmc/host/imxmmc.c | 2 +- trunk/drivers/mmc/host/mmc_spi.c | 10 - trunk/drivers/mmc/host/pxamci.c | 11 +- trunk/drivers/mmc/host/sdhci.c | 65 +- trunk/drivers/mmc/host/sdhci.h | 3 +- trunk/drivers/mmc/host/tifm_sd.c | 18 +- trunk/drivers/mtd/chips/cfi_cmdset_0001.c | 7 +- trunk/drivers/net/3c509.c | 4 + trunk/drivers/net/82596.c | 3 +- trunk/drivers/net/Kconfig | 253 +- trunk/drivers/net/Makefile | 4 + trunk/drivers/net/amd8111e.c | 6 + trunk/drivers/net/arcnet/Kconfig | 15 +- trunk/drivers/net/arm/ep93xx_eth.c | 2 +- trunk/drivers/net/bfin_mac.c | 6 +- trunk/drivers/net/bfin_mac.h | 2 +- trunk/drivers/net/bnx2.c | 35 +- trunk/drivers/net/bnx2.h | 1 - trunk/drivers/net/bonding/bond_main.c | 121 +- trunk/drivers/net/bonding/bond_sysfs.c | 98 +- trunk/drivers/net/bonding/bonding.h | 4 +- trunk/drivers/net/cassini.c | 139 +- trunk/drivers/net/cassini.h | 18 +- trunk/drivers/net/chelsio/cxgb2.c | 70 +- trunk/drivers/net/chelsio/pm3393.c | 112 +- trunk/drivers/net/chelsio/sge.c | 46 +- trunk/drivers/net/chelsio/sge.h | 3 +- trunk/drivers/net/cris/eth_v10.c | 440 ++-- trunk/drivers/net/cxgb3/regs.h | 27 +- trunk/drivers/net/cxgb3/t3_hw.c | 6 +- trunk/drivers/net/cxgb3/xgmac.c | 44 +- trunk/drivers/net/dl2k.c | 51 +- trunk/drivers/net/dl2k.h | 6 +- trunk/drivers/net/e100.c | 18 +- trunk/drivers/net/e1000/e1000.h | 8 + trunk/drivers/net/e1000/e1000_ethtool.c | 31 +- trunk/drivers/net/e1000/e1000_hw.c | 4 +- trunk/drivers/net/e1000/e1000_main.c | 36 +- trunk/drivers/net/e1000/e1000_param.c | 23 +- trunk/drivers/net/e1000e/82571.c | 2 +- trunk/drivers/net/e1000e/e1000.h | 5 +- trunk/drivers/net/e1000e/ethtool.c | 6 +- trunk/drivers/net/e1000e/netdev.c | 439 +--- trunk/drivers/net/e1000e/param.c | 35 +- trunk/drivers/net/ehea/ehea.h | 2 +- trunk/drivers/net/ehea/ehea_main.c | 41 +- trunk/drivers/net/ehea/ehea_qmr.h | 4 +- trunk/drivers/net/epic100.c | 2 +- trunk/drivers/net/fec_8xx/fec_main.c | 5 - trunk/drivers/net/fec_mpc52xx.c | 1115 +++++++++ trunk/drivers/net/fec_mpc52xx.h | 313 +++ trunk/drivers/net/fec_mpc52xx_phy.c | 198 ++ trunk/drivers/net/forcedeth.c | 44 +- trunk/drivers/net/fs_enet/Kconfig | 11 +- trunk/drivers/net/fs_enet/Makefile | 15 +- trunk/drivers/net/fs_enet/fs_enet-main.c | 14 +- trunk/drivers/net/fs_enet/mac-scc.c | 2 +- trunk/drivers/net/gianfar.c | 2 +- trunk/drivers/net/hamachi.c | 70 +- trunk/drivers/net/hamradio/6pack.c | 26 +- trunk/drivers/net/ibm_newemac/core.c | 87 +- trunk/drivers/net/ibm_newemac/core.h | 12 +- trunk/drivers/net/ibm_newemac/debug.c | 7 +- trunk/drivers/net/ibm_newemac/debug.h | 5 + trunk/drivers/net/ibm_newemac/emac.h | 5 + trunk/drivers/net/ibm_newemac/mal.c | 5 + trunk/drivers/net/ibm_newemac/mal.h | 5 + trunk/drivers/net/ibm_newemac/phy.c | 81 + trunk/drivers/net/ibm_newemac/phy.h | 5 + trunk/drivers/net/ibm_newemac/rgmii.c | 25 +- trunk/drivers/net/ibm_newemac/rgmii.h | 10 +- trunk/drivers/net/ibm_newemac/tah.c | 8 +- trunk/drivers/net/ibm_newemac/tah.h | 5 + trunk/drivers/net/ibm_newemac/zmii.c | 9 +- trunk/drivers/net/ibm_newemac/zmii.h | 5 + trunk/drivers/net/irda/au1k_ir.c | 11 +- trunk/drivers/net/irda/irda-usb.c | 5 + trunk/drivers/net/irda/irtty-sir.c | 7 +- trunk/drivers/net/irda/mcs7780.c | 2 + trunk/drivers/net/irda/stir4200.c | 10 +- trunk/drivers/net/ixgb/ixgb.h | 7 + trunk/drivers/net/ixgb/ixgb_ethtool.c | 7 +- trunk/drivers/net/ixgb/ixgb_hw.c | 4 +- trunk/drivers/net/ixgb/ixgb_main.c | 38 +- trunk/drivers/net/ixgb/ixgb_param.c | 43 +- trunk/drivers/net/ixgbe/ixgbe.h | 2 +- trunk/drivers/net/ixgbe/ixgbe_82598.c | 3 +- trunk/drivers/net/ixgbe/ixgbe_main.c | 23 +- trunk/drivers/net/ixp2000/ixpdev.c | 2 - trunk/drivers/net/lib82596.c | 50 +- trunk/drivers/net/loopback.c | 4 +- trunk/drivers/net/macb.c | 25 +- trunk/drivers/net/meth.c | 11 +- trunk/drivers/net/mlx4/alloc.c | 7 +- trunk/drivers/net/mlx4/qp.c | 4 +- trunk/drivers/net/myri10ge/myri10ge.c | 7 +- trunk/drivers/net/myri_sbus.c | 2 +- trunk/drivers/net/natsemi.c | 2 +- trunk/drivers/net/netx-eth.c | 10 +- trunk/drivers/net/netxen/netxen_nic.h | 69 +- trunk/drivers/net/netxen/netxen_nic_init.c | 20 +- trunk/drivers/net/netxen/netxen_nic_main.c | 72 +- trunk/drivers/net/netxen/netxen_nic_niu.c | 8 +- trunk/drivers/net/niu.c | 65 +- trunk/drivers/net/pasemi_mac.c | 20 +- trunk/drivers/net/pcmcia/3c574_cs.c | 12 +- trunk/drivers/net/pcmcia/3c589_cs.c | 11 +- trunk/drivers/net/pcmcia/axnet_cs.c | 2 +- trunk/drivers/net/pcmcia/fmvj18x_cs.c | 2 +- trunk/drivers/net/pcmcia/pcnet_cs.c | 3 +- trunk/drivers/net/pcmcia/smc91c92_cs.c | 2 +- trunk/drivers/net/pcmcia/xirc2ps_cs.c | 2 +- trunk/drivers/net/pcnet32.c | 5 + trunk/drivers/net/phy/marvell.c | 49 +- trunk/drivers/net/phy/mdio_bus.c | 9 +- trunk/drivers/net/phy/phy.c | 3 + trunk/drivers/net/phy/phy_device.c | 14 +- trunk/drivers/net/plip.c | 4 +- trunk/drivers/net/ppp_async.c | 44 +- trunk/drivers/net/ppp_generic.c | 126 +- trunk/drivers/net/ppp_synctty.c | 37 +- trunk/drivers/net/pppoe.c | 2 +- trunk/drivers/net/pppol2tp.c | 27 +- trunk/drivers/net/qla3xxx.c | 49 +- trunk/drivers/net/qla3xxx.h | 1 + trunk/drivers/net/r8169.c | 46 +- trunk/drivers/net/rrunner.c | 67 +- trunk/drivers/net/rrunner.h | 2 +- trunk/drivers/net/s2io-regs.h | 1 + trunk/drivers/net/s2io.c | 163 +- trunk/drivers/net/sis190.c | 10 +- trunk/drivers/net/skge.c | 157 +- trunk/drivers/net/sky2.c | 249 +- trunk/drivers/net/sky2.h | 28 +- trunk/drivers/net/slip.c | 8 +- trunk/drivers/net/smc911x.c | 21 +- trunk/drivers/net/smc911x.h | 4 +- trunk/drivers/net/smc91x.h | 17 +- trunk/drivers/net/starfire.c | 2 +- trunk/drivers/net/sundance.c | 34 +- trunk/drivers/net/sungem.c | 22 +- trunk/drivers/net/sunhme.c | 13 +- trunk/drivers/net/tehuti.c | 8 +- trunk/drivers/net/tg3.c | 291 ++- trunk/drivers/net/tg3.h | 44 +- trunk/drivers/net/tokenring/3c359.c | 90 +- trunk/drivers/net/tokenring/3c359.h | 38 +- trunk/drivers/net/tulip/Kconfig | 21 +- trunk/drivers/net/tulip/de4x5.c | 127 +- trunk/drivers/net/tulip/dmfe.c | 4 +- trunk/drivers/net/tulip/interrupt.c | 8 +- trunk/drivers/net/tulip/tulip_core.c | 3 +- trunk/drivers/net/tulip/xircom_cb.c | 54 +- trunk/drivers/net/tun.c | 2 +- trunk/drivers/net/typhoon.c | 45 +- trunk/drivers/net/typhoon.h | 15 +- trunk/drivers/net/ucc_geth.c | 27 +- trunk/drivers/net/ucc_geth_mii.h | 2 +- trunk/drivers/net/usb/Kconfig | 9 +- trunk/drivers/net/usb/asix.c | 235 +- trunk/drivers/net/usb/dm9601.c | 6 +- trunk/drivers/net/usb/kaweth.c | 2 +- trunk/drivers/net/usb/mcs7830.c | 4 +- trunk/drivers/net/usb/usbnet.c | 7 - trunk/drivers/net/veth.c | 2 +- trunk/drivers/net/via-velocity.c | 16 +- trunk/drivers/net/virtio_net.c | 15 +- trunk/drivers/net/wan/cycx_x25.c | 12 +- trunk/drivers/net/wan/lmc/lmc_main.c | 55 +- trunk/drivers/net/wan/syncppp.c | 35 +- trunk/drivers/net/wan/x25_asy.c | 6 +- trunk/drivers/net/wireless/Kconfig | 54 +- trunk/drivers/net/wireless/b43/Kconfig | 10 +- trunk/drivers/net/wireless/b43/b43.h | 2 + trunk/drivers/net/wireless/b43/debugfs.c | 2 +- trunk/drivers/net/wireless/b43/leds.c | 4 + trunk/drivers/net/wireless/b43/main.c | 45 +- trunk/drivers/net/wireless/b43/main.h | 20 +- trunk/drivers/net/wireless/b43/pcmcia.c | 52 +- trunk/drivers/net/wireless/b43/phy.c | 2 +- trunk/drivers/net/wireless/b43/rfkill.c | 144 +- trunk/drivers/net/wireless/b43/rfkill.h | 14 +- trunk/drivers/net/wireless/b43/xmit.c | 27 +- trunk/drivers/net/wireless/b43/xmit.h | 65 +- .../drivers/net/wireless/b43legacy/debugfs.c | 2 +- trunk/drivers/net/wireless/b43legacy/dma.c | 2 +- trunk/drivers/net/wireless/b43legacy/main.c | 25 +- trunk/drivers/net/wireless/b43legacy/phy.c | 2 +- .../net/wireless/bcm43xx/bcm43xx_debugfs.c | 2 +- .../net/wireless/bcm43xx/bcm43xx_phy.c | 2 +- .../drivers/net/wireless/hostap/hostap_pci.c | 6 +- trunk/drivers/net/wireless/ipw2100.c | 15 +- trunk/drivers/net/wireless/ipw2200.c | 26 +- trunk/drivers/net/wireless/iwlwifi/Kconfig | 8 +- .../net/wireless/iwlwifi/iwl-3945-rs.c | 56 +- .../net/wireless/iwlwifi/iwl-3945-rs.h | 29 +- trunk/drivers/net/wireless/iwlwifi/iwl-3945.c | 126 +- trunk/drivers/net/wireless/iwlwifi/iwl-4965.c | 6 +- .../net/wireless/iwlwifi/iwl3945-base.c | 104 +- .../net/wireless/iwlwifi/iwl4965-base.c | 102 +- trunk/drivers/net/wireless/libertas/cmd.c | 10 +- trunk/drivers/net/wireless/libertas/if_cs.c | 10 +- trunk/drivers/net/wireless/libertas/if_sdio.c | 4 +- trunk/drivers/net/wireless/libertas/main.c | 4 - trunk/drivers/net/wireless/libertas/wext.c | 2 +- trunk/drivers/net/wireless/netwave_cs.c | 2 +- trunk/drivers/net/wireless/p54usb.c | 2 +- trunk/drivers/net/wireless/rt2x00/rt2500pci.c | 4 +- trunk/drivers/net/wireless/rt2x00/rt2500usb.c | 13 +- trunk/drivers/net/wireless/rt2x00/rt2x00.h | 15 +- trunk/drivers/net/wireless/rt2x00/rt2x00lib.h | 2 +- trunk/drivers/net/wireless/rt2x00/rt2x00mac.c | 8 + trunk/drivers/net/wireless/rt2x00/rt2x00pci.c | 20 +- trunk/drivers/net/wireless/rt2x00/rt2x00usb.c | 26 +- trunk/drivers/net/wireless/rt2x00/rt61pci.c | 12 + trunk/drivers/net/wireless/rt2x00/rt73usb.c | 6 +- trunk/drivers/net/wireless/rtl8187_dev.c | 22 +- trunk/drivers/net/wireless/strip.c | 10 +- trunk/drivers/net/wireless/zd1211rw/zd_mac.c | 10 +- trunk/drivers/net/xen-netfront.c | 5 - trunk/drivers/net/yellowfin.c | 25 +- trunk/drivers/oprofile/cpu_buffer.c | 7 + trunk/drivers/oprofile/cpu_buffer.h | 1 + trunk/drivers/oprofile/oprofile_stats.c | 4 + trunk/drivers/parisc/lba_pci.c | 10 +- trunk/drivers/parport/procfs.c | 2 +- trunk/drivers/pci/Kconfig | 11 + trunk/drivers/pci/hotplug/Kconfig | 6 +- trunk/drivers/pci/hotplug/acpiphp.h | 8 +- trunk/drivers/pci/hotplug/acpiphp_core.c | 29 +- trunk/drivers/pci/hotplug/acpiphp_glue.c | 36 +- trunk/drivers/pci/hotplug/acpiphp_ibm.c | 47 +- trunk/drivers/pci/hotplug/cpqphp_core.c | 41 +- trunk/drivers/pci/hotplug/cpqphp_ctrl.c | 112 +- trunk/drivers/pci/hotplug/fakephp.c | 14 +- trunk/drivers/pci/hotplug/pciehp_ctrl.c | 16 +- trunk/drivers/pci/hotplug/rpadlpar_core.c | 19 +- trunk/drivers/pci/hotplug/rpaphp_core.c | 15 +- trunk/drivers/pci/hotplug/rpaphp_pci.c | 1 + trunk/drivers/pci/hotplug/shpchp_ctrl.c | 16 +- trunk/drivers/pci/intel-iommu.c | 13 +- trunk/drivers/pci/intel-iommu.h | 2 +- trunk/drivers/pci/msi.c | 18 +- trunk/drivers/pci/pci-driver.c | 5 +- trunk/drivers/pci/pci-sysfs.c | 4 +- trunk/drivers/pci/pcie/aer/aerdrv_core.c | 29 +- trunk/drivers/pci/pcie/portdrv_pci.c | 2 +- trunk/drivers/pci/probe.c | 69 +- trunk/drivers/pci/quirks.c | 57 +- trunk/drivers/pci/search.c | 9 + trunk/drivers/pcmcia/cs.c | 8 +- trunk/drivers/pcmcia/ds.c | 6 +- trunk/drivers/pcmcia/pxa2xx_lubbock.c | 2 +- trunk/drivers/pcmcia/ti113x.h | 2 +- trunk/drivers/pcmcia/yenta_socket.c | 6 +- trunk/drivers/pnp/pnpacpi/rsparser.c | 45 +- trunk/drivers/pnp/resource.c | 4 +- trunk/drivers/ps3/Makefile | 4 +- .../ps3/{sys-manager.c => ps3-sys-manager.c} | 0 trunk/drivers/ps3/{vuart.c => ps3-vuart.c} | 1 - trunk/drivers/rtc/Kconfig | 10 +- trunk/drivers/rtc/hctosys.c | 4 +- trunk/drivers/rtc/interface.c | 4 +- trunk/drivers/rtc/rtc-at32ap700x.c | 20 +- trunk/drivers/rtc/rtc-cmos.c | 3 +- trunk/drivers/rtc/rtc-dev.c | 12 +- trunk/drivers/rtc/rtc-ds1307.c | 93 + trunk/drivers/rtc/rtc-ds1553.c | 2 +- trunk/drivers/rtc/rtc-ds1742.c | 5 +- trunk/drivers/rtc/rtc-m48t59.c | 9 +- trunk/drivers/rtc/rtc-max6902.c | 12 +- trunk/drivers/rtc/rtc-s3c.c | 2 - trunk/drivers/rtc/rtc-sh.c | 6 +- trunk/drivers/rtc/rtc-stk17ta8.c | 2 +- trunk/drivers/s390/block/dcssblk.c | 13 +- trunk/drivers/s390/cio/cmf.c | 4 +- trunk/drivers/s390/cio/css.c | 3 +- trunk/drivers/s390/cio/device.c | 2 +- trunk/drivers/s390/cio/device_fsm.c | 2 +- trunk/drivers/s390/cio/device_id.c | 8 - trunk/drivers/s390/net/ctcmain.c | 50 +- trunk/drivers/s390/net/netiucv.c | 4 +- trunk/drivers/s390/net/smsgiucv.c | 4 + trunk/drivers/s390/scsi/zfcp_def.h | 5 +- trunk/drivers/s390/scsi/zfcp_erp.c | 18 +- trunk/drivers/sbus/char/cpwatchdog.c | 2 +- trunk/drivers/scsi/Kconfig | 6 +- trunk/drivers/scsi/aacraid/commctrl.c | 12 +- trunk/drivers/scsi/aacraid/comminit.c | 2 +- trunk/drivers/scsi/aacraid/commsup.c | 8 +- trunk/drivers/scsi/aacraid/dpcsup.c | 2 +- trunk/drivers/scsi/aacraid/linit.c | 7 +- trunk/drivers/scsi/advansys.c | 2 +- trunk/drivers/scsi/aic94xx/aic94xx_sds.c | 4 +- trunk/drivers/scsi/arcmsr/arcmsr.h | 39 +- trunk/drivers/scsi/arcmsr/arcmsr_attr.c | 6 +- trunk/drivers/scsi/arcmsr/arcmsr_hba.c | 205 +- trunk/drivers/scsi/arm/scsi.h | 8 +- trunk/drivers/scsi/atari_scsi.c | 10 +- trunk/drivers/scsi/dpt_i2o.c | 135 +- trunk/drivers/scsi/dpti.h | 9 +- trunk/drivers/scsi/dtc.c | 5 +- trunk/drivers/scsi/esp_scsi.c | 4 +- trunk/drivers/scsi/g_NCR5380.c | 5 +- trunk/drivers/scsi/ibmvscsi/ibmvscsi.c | 19 +- trunk/drivers/scsi/ide-scsi.c | 17 +- trunk/drivers/scsi/initio.c | 2 + trunk/drivers/scsi/iscsi_tcp.c | 139 +- trunk/drivers/scsi/iscsi_tcp.h | 34 +- trunk/drivers/scsi/libiscsi.c | 3 - trunk/drivers/scsi/lpfc/lpfc_scsi.c | 5 +- trunk/drivers/scsi/mac_scsi.c | 4 +- trunk/drivers/scsi/osst.c | 6 +- trunk/drivers/scsi/pas16.c | 5 +- trunk/drivers/scsi/qla1280.c | 387 ++- trunk/drivers/scsi/qla2xxx/qla_os.c | 4 +- trunk/drivers/scsi/scsi.c | 31 +- trunk/drivers/scsi/scsi_lib.c | 140 +- trunk/drivers/scsi/scsi_priv.h | 3 + trunk/drivers/scsi/scsi_scan.c | 3 + trunk/drivers/scsi/scsi_sysfs.c | 64 + trunk/drivers/scsi/scsi_transport_srp.c | 3 +- trunk/drivers/scsi/sg.c | 1 + trunk/drivers/scsi/st.c | 1 + trunk/drivers/scsi/sun3_scsi.c | 4 +- trunk/drivers/scsi/sun3_scsi_vme.c | 4 +- trunk/drivers/scsi/sym53c8xx_2/sym_glue.c | 2 +- trunk/drivers/scsi/sym53c8xx_2/sym_hipd.c | 2 +- trunk/drivers/scsi/t128.c | 5 +- trunk/drivers/scsi/zorro7xx.c | 3 + trunk/drivers/serial/8250_early.c | 4 +- trunk/drivers/serial/8250_pci.c | 5 +- trunk/drivers/serial/8250_pnp.c | 10 +- trunk/drivers/serial/Kconfig | 2 +- trunk/drivers/serial/atmel_serial.c | 9 - trunk/drivers/serial/crisv10.c | 1293 ++++------ trunk/drivers/serial/crisv10.h | 146 ++ trunk/drivers/serial/ip22zilog.c | 247 +- trunk/drivers/serial/pxa.c | 4 +- trunk/drivers/serial/serial_cs.c | 2 +- trunk/drivers/serial/serial_txx9.c | 10 +- trunk/drivers/serial/sh-sci.h | 19 +- trunk/drivers/serial/suncore.c | 31 +- trunk/drivers/serial/suncore.h | 3 +- trunk/drivers/serial/sunhv.c | 14 +- trunk/drivers/serial/sunsab.c | 16 +- trunk/drivers/serial/sunsu.c | 16 +- trunk/drivers/serial/sunzilog.c | 41 +- trunk/drivers/serial/uartlite.c | 11 +- trunk/drivers/sh/maple/maple.c | 3 +- trunk/drivers/sh/superhyway/superhyway.c | 7 +- trunk/drivers/spi/Kconfig | 2 +- trunk/drivers/spi/at25.c | 7 + trunk/drivers/spi/atmel_spi.c | 4 +- trunk/drivers/spi/pxa2xx_spi.c | 2 +- trunk/drivers/spi/spi.c | 27 +- trunk/drivers/spi/spi_bfin5xx.c | 866 ++++--- trunk/drivers/spi/spi_bitbang.c | 5 +- trunk/drivers/spi/spi_imx.c | 2 +- trunk/drivers/spi/spi_s3c24xx_gpio.c | 21 +- trunk/drivers/spi/spi_txx9.c | 40 +- trunk/drivers/spi/spidev.c | 6 +- trunk/drivers/spi/tle62x0.c | 5 +- trunk/drivers/ssb/main.c | 6 +- trunk/drivers/ssb/pcmcia.c | 56 +- trunk/drivers/ssb/scan.c | 11 + trunk/drivers/telephony/phonedev.c | 5 +- trunk/drivers/usb/README | 6 +- trunk/drivers/usb/core/buffer.c | 1 - trunk/drivers/usb/core/driver.c | 11 - trunk/drivers/usb/core/hcd-pci.c | 2 +- trunk/drivers/usb/core/hcd.c | 4 +- trunk/drivers/usb/core/hub.c | 8 +- trunk/drivers/usb/core/message.c | 38 +- trunk/drivers/usb/core/sysfs.c | 6 + trunk/drivers/usb/core/usb.c | 27 +- trunk/drivers/usb/gadget/at91_udc.c | 2 + trunk/drivers/usb/gadget/fsl_usb2_udc.c | 2 +- trunk/drivers/usb/gadget/omap_udc.c | 6 +- trunk/drivers/usb/gadget/s3c2410_udc.c | 16 +- trunk/drivers/usb/host/Kconfig | 2 +- trunk/drivers/usb/host/ehci-fsl.c | 2 +- trunk/drivers/usb/host/ehci-hcd.c | 5 +- trunk/drivers/usb/host/ohci-hcd.c | 23 +- trunk/drivers/usb/host/ohci-ppc-of.c | 2 +- trunk/drivers/usb/host/ohci-ssb.c | 2 +- trunk/drivers/usb/host/r8a66597-hcd.c | 2 +- trunk/drivers/usb/host/uhci-hcd.c | 9 +- trunk/drivers/usb/image/microtek.c | 2 +- trunk/drivers/usb/misc/adutux.c | 262 ++- trunk/drivers/usb/misc/usbled.c | 4 +- trunk/drivers/usb/serial/cp2101.c | 6 +- trunk/drivers/usb/serial/generic.c | 5 +- trunk/drivers/usb/serial/keyspan.c | 10 +- trunk/drivers/usb/serial/mos7840.c | 2 +- trunk/drivers/usb/serial/option.c | 4 +- trunk/drivers/usb/serial/pl2303.c | 8 + trunk/drivers/usb/serial/pl2303.h | 3 + trunk/drivers/usb/serial/sierra.c | 4 + trunk/drivers/usb/storage/scsiglue.c | 16 +- trunk/drivers/usb/storage/unusual_devs.h | 32 +- trunk/drivers/video/Kconfig | 21 +- trunk/drivers/video/Makefile | 1 + trunk/drivers/video/atmel_lcdfb.c | 6 +- trunk/drivers/video/aty/radeon_base.c | 1 + trunk/drivers/video/aty/radeon_pm.c | 4 +- trunk/drivers/video/cirrusfb.c | 3 +- trunk/drivers/video/console/Kconfig | 2 +- trunk/drivers/video/cyber2000fb.c | 2 + trunk/drivers/video/efifb.c | 232 ++ trunk/drivers/video/fb_ddc.c | 8 +- trunk/drivers/video/gbefb.c | 4 +- trunk/drivers/video/geode/lxfb.h | 2 +- trunk/drivers/video/imacfb.c | 4 - trunk/drivers/video/omap/Kconfig | 2 +- trunk/drivers/video/ps3fb.c | 65 +- trunk/drivers/video/s1d13xxxfb.c | 5 +- trunk/drivers/video/s3c2410fb.c | 2 +- trunk/drivers/video/sis/sis_main.c | 3 +- trunk/drivers/video/uvesafb.c | 10 +- trunk/drivers/virtio/virtio.c | 13 + trunk/drivers/virtio/virtio_ring.c | 10 +- trunk/drivers/w1/Kconfig | 3 +- trunk/drivers/w1/masters/ds2490.c | 2 +- trunk/drivers/w1/w1.c | 6 +- trunk/drivers/watchdog/Kconfig | 27 +- trunk/drivers/watchdog/Makefile | 2 + trunk/drivers/watchdog/alim1535_wdt.c | 4 +- trunk/drivers/watchdog/at32ap700x_wdt.c | 69 +- trunk/drivers/watchdog/bfin_wdt.c | 2 +- trunk/drivers/watchdog/davinci_wdt.c | 6 +- trunk/drivers/watchdog/i6300esb.c | 4 +- trunk/drivers/watchdog/iTCO_wdt.c | 114 +- trunk/drivers/watchdog/ib700wdt.c | 4 +- trunk/drivers/watchdog/it8712f_wdt.c | 400 ++++ trunk/drivers/watchdog/machzwd.c | 7 +- trunk/drivers/watchdog/mpc83xx_wdt.c | 5 +- trunk/drivers/watchdog/pc87413_wdt.c | 4 +- trunk/drivers/watchdog/pnx4008_wdt.c | 6 +- trunk/drivers/watchdog/sbc7240_wdt.c | 324 +++ trunk/drivers/watchdog/sbc8360.c | 3 +- trunk/drivers/watchdog/sc1200wdt.c | 3 +- trunk/drivers/watchdog/sc520_wdt.c | 4 +- trunk/drivers/watchdog/smsc37b787_wdt.c | 4 +- trunk/drivers/watchdog/w83627hf_wdt.c | 4 +- trunk/drivers/watchdog/w83697hf_wdt.c | 8 +- trunk/drivers/watchdog/w83877f_wdt.c | 4 +- trunk/drivers/watchdog/w83977f_wdt.c | 4 +- trunk/drivers/watchdog/wafer5823wdt.c | 4 +- trunk/drivers/watchdog/wdt.c | 3 +- trunk/drivers/watchdog/wdt977.c | 4 +- trunk/drivers/watchdog/wdt_pci.c | 6 +- trunk/drivers/zorro/zorro-driver.c | 15 + trunk/fs/9p/v9fs.c | 6 +- trunk/fs/9p/vfs_super.c | 3 + trunk/fs/Kconfig | 19 +- trunk/fs/afs/vlocation.c | 2 +- trunk/fs/aio.c | 7 +- trunk/fs/bfs/bfs.h | 4 +- trunk/fs/bfs/dir.c | 146 +- trunk/fs/bfs/file.c | 62 +- trunk/fs/bfs/inode.c | 128 +- trunk/fs/binfmt_aout.c | 1 - trunk/fs/binfmt_elf.c | 4 +- trunk/fs/cifs/CHANGES | 14 +- trunk/fs/cifs/Makefile | 7 +- trunk/fs/cifs/README | 27 +- trunk/fs/cifs/TODO | 2 +- trunk/fs/cifs/asn1.c | 35 +- trunk/fs/cifs/cifs_spnego.c | 134 ++ trunk/fs/cifs/cifs_spnego.h | 47 + trunk/fs/cifs/cifsacl.c | 348 ++- trunk/fs/cifs/cifsacl.h | 17 +- trunk/fs/cifs/cifsencrypt.c | 9 +- trunk/fs/cifs/cifsfs.c | 24 +- trunk/fs/cifs/cifsfs.h | 2 +- trunk/fs/cifs/cifsglob.h | 13 + trunk/fs/cifs/cifspdu.h | 40 + trunk/fs/cifs/cifsproto.h | 24 +- trunk/fs/cifs/cifssmb.c | 161 +- trunk/fs/cifs/connect.c | 147 +- trunk/fs/cifs/dir.c | 2 +- trunk/fs/cifs/file.c | 75 +- trunk/fs/cifs/inode.c | 41 +- trunk/fs/cifs/md5.c | 8 +- trunk/fs/cifs/misc.c | 10 +- trunk/fs/cifs/netmisc.c | 54 +- trunk/fs/cifs/readdir.c | 10 +- trunk/fs/cifs/sess.c | 93 +- trunk/fs/cifs/smbencrypt.c | 18 +- trunk/fs/cifs/transport.c | 91 +- trunk/fs/cifs/xattr.c | 11 +- trunk/fs/compat_ioctl.c | 16 +- trunk/fs/dlm/lowcomms.c | 6 +- trunk/fs/dquot.c | 36 +- trunk/fs/ecryptfs/crypto.c | 37 +- trunk/fs/ecryptfs/inode.c | 20 +- trunk/fs/ecryptfs/keystore.c | 2 +- trunk/fs/ecryptfs/main.c | 6 +- trunk/fs/ecryptfs/messaging.c | 1 + trunk/fs/ecryptfs/mmap.c | 31 +- trunk/fs/ecryptfs/read_write.c | 29 +- trunk/fs/ecryptfs/super.c | 1 - trunk/fs/exec.c | 12 +- trunk/fs/ext2/balloc.c | 50 +- trunk/fs/ext2/ext2.h | 7 + trunk/fs/ext2/ioctl.c | 5 + trunk/fs/ext3/balloc.c | 48 +- trunk/fs/ext3/dir.c | 10 +- trunk/fs/ext3/ioctl.c | 5 + trunk/fs/ext3/namei.c | 92 +- trunk/fs/ext3/super.c | 2 +- trunk/fs/ext4/balloc.c | 41 - trunk/fs/ext4/ioctl.c | 5 + trunk/fs/ext4/super.c | 2 +- trunk/fs/fat/fatent.c | 28 + trunk/fs/fuse/dir.c | 81 +- trunk/fs/fuse/file.c | 52 +- trunk/fs/fuse/fuse_i.h | 5 +- trunk/fs/fuse/inode.c | 4 +- trunk/fs/hfs/bfind.c | 12 + trunk/fs/hfs/brec.c | 15 +- trunk/fs/hfs/btree.c | 13 +- trunk/fs/hfs/hfs.h | 5 + trunk/fs/hugetlbfs/inode.c | 11 +- trunk/fs/ioprio.c | 4 + trunk/fs/jbd/checkpoint.c | 12 +- trunk/fs/jbd/commit.c | 8 +- trunk/fs/jffs2/background.c | 2 +- trunk/fs/jfs/ioctl.c | 3 + trunk/fs/locks.c | 11 + trunk/fs/namei.c | 4 +- trunk/fs/nfs/client.c | 6 +- trunk/fs/nfs/dir.c | 1 + trunk/fs/nfs/direct.c | 140 +- trunk/fs/nfs/getroot.c | 92 +- trunk/fs/nfs/nfs4_fs.h | 1 + trunk/fs/nfs/nfs4proc.c | 34 +- trunk/fs/nfs/nfs4renewd.c | 2 - trunk/fs/nfs/nfs4state.c | 5 +- trunk/fs/nfs/super.c | 21 +- trunk/fs/nfs/write.c | 3 +- trunk/fs/nfsd/nfs2acl.c | 2 +- trunk/fs/nfsd/nfs3acl.c | 2 +- trunk/fs/nfsd/nfs3xdr.c | 5 +- trunk/fs/nfsd/nfs4recover.c | 2 +- trunk/fs/nfsd/nfsfh.c | 43 +- trunk/fs/nfsd/nfsxdr.c | 5 +- trunk/fs/ntfs/aops.c | 10 +- trunk/fs/ntfs/attrib.c | 5 +- trunk/fs/ntfs/compress.c | 10 + trunk/fs/ocfs2/alloc.c | 70 +- trunk/fs/ocfs2/aops.c | 24 +- trunk/fs/ocfs2/cluster/heartbeat.c | 2 +- trunk/fs/ocfs2/cluster/masklog.h | 2 +- trunk/fs/ocfs2/cluster/tcp.c | 24 +- trunk/fs/ocfs2/dcache.c | 22 +- trunk/fs/ocfs2/dir.c | 6 +- trunk/fs/ocfs2/dlm/dlmmaster.c | 4 +- trunk/fs/ocfs2/dlmglue.c | 25 +- trunk/fs/ocfs2/file.c | 45 +- trunk/fs/ocfs2/inode.c | 6 +- trunk/fs/ocfs2/journal.c | 13 +- trunk/fs/ocfs2/localalloc.c | 5 +- trunk/fs/ocfs2/namei.c | 13 +- trunk/fs/ocfs2/super.c | 6 +- trunk/fs/open.c | 2 +- trunk/fs/proc/array.c | 12 +- trunk/fs/proc/base.c | 86 +- trunk/fs/proc/generic.c | 46 +- trunk/fs/proc/inode.c | 9 +- trunk/fs/proc/internal.h | 2 + trunk/fs/proc/proc_misc.c | 4 +- trunk/fs/proc/proc_net.c | 95 +- trunk/fs/proc/root.c | 1 + trunk/fs/proc/task_mmu.c | 3 +- trunk/fs/proc/task_nommu.c | 4 +- trunk/fs/read_write.c | 2 +- trunk/fs/reiserfs/ioctl.c | 3 + trunk/fs/reiserfs/procfs.c | 6 - trunk/fs/reiserfs/stree.c | 3 - trunk/fs/smbfs/file.c | 7 +- trunk/fs/smbfs/inode.c | 2 +- trunk/fs/smbfs/proc.c | 2 +- trunk/fs/smbfs/smbiod.c | 2 +- trunk/fs/sysfs/dir.c | 4 +- trunk/fs/sysfs/file.c | 6 +- trunk/fs/sysfs/sysfs.h | 2 - trunk/fs/ufs/dir.c | 2 +- trunk/fs/ufs/super.c | 19 +- trunk/fs/xfs/linux-2.6/xfs_buf.c | 37 +- trunk/fs/xfs/linux-2.6/xfs_file.c | 129 + trunk/fs/xfs/linux-2.6/xfs_ioctl.c | 20 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.c | 3 + trunk/fs/xfs/linux-2.6/xfs_iops.c | 8 +- trunk/fs/xfs/quota/xfs_qm.c | 3 + trunk/fs/xfs/xfs_dir2_block.c | 6 +- trunk/fs/xfs/xfs_dir2_leaf.c | 2 +- trunk/fs/xfs/xfs_dir2_sf.c | 9 +- trunk/fs/xfs/xfs_iget.c | 2 +- trunk/fs/xfs/xfs_inode.c | 6 +- trunk/fs/xfs/xfs_itable.c | 43 +- trunk/include/acpi/acpi_bus.h | 3 +- trunk/include/acpi/processor.h | 1 - trunk/include/asm-alpha/io_trivial.h | 12 +- trunk/include/asm-arm/arch-at91/board.h | 6 +- trunk/include/asm-arm/arch-davinci/gpio.h | 3 + trunk/include/asm-arm/arch-ixp23xx/irqs.h | 2 +- .../asm-arm/arch-omap/board-innovator.h | 2 +- trunk/include/asm-arm/arch-pxa/hardware.h | 24 +- trunk/include/asm-arm/arch-pxa/irqs.h | 20 +- trunk/include/asm-arm/arch-pxa/mfp-pxa300.h | 4 +- trunk/include/asm-arm/arch-pxa/mfp-pxa320.h | 4 +- trunk/include/asm-arm/arch-pxa/mfp.h | 20 +- trunk/include/asm-arm/arch-pxa/pxa-regs.h | 6 +- trunk/include/asm-arm/arch-s3c2410/spi-gpio.h | 2 + trunk/include/asm-arm/flat.h | 3 +- trunk/include/asm-arm/hardware/iop3xx.h | 2 +- trunk/include/asm-arm/pgtable.h | 2 +- trunk/include/asm-arm/plat-s3c/regs-nand.h | 2 +- trunk/include/asm-arm/system.h | 13 + trunk/include/asm-arm26/irq_regs.h | 1 - trunk/include/asm-avr32/cacheflush.h | 19 +- trunk/include/asm-avr32/ocd.h | 592 ++++- trunk/include/asm-avr32/processor.h | 3 + trunk/include/asm-avr32/ptrace.h | 6 +- trunk/include/asm-avr32/sysreg.h | 4 + trunk/include/asm-avr32/system.h | 4 +- trunk/include/asm-avr32/thread_info.h | 25 +- trunk/include/asm-blackfin/bfin-global.h | 6 +- trunk/include/asm-blackfin/bfin5xx_spi.h | 3 +- trunk/include/asm-blackfin/cplbinit.h | 33 +- trunk/include/asm-blackfin/delay.h | 66 +- trunk/include/asm-blackfin/fixed_code.h | 4 +- trunk/include/asm-blackfin/gptimers.h | 2 + trunk/include/asm-blackfin/io.h | 1 + .../asm-blackfin/mach-bf527/defBF52x_base.h | 86 +- trunk/include/asm-blackfin/mach-bf527/dma.h | 7 +- trunk/include/asm-blackfin/mach-bf527/irq.h | 4 - .../include/asm-blackfin/mach-bf527/mem_map.h | 3 +- trunk/include/asm-blackfin/mach-bf533/irq.h | 4 - .../include/asm-blackfin/mach-bf533/mem_map.h | 4 +- .../include/asm-blackfin/mach-bf533/portmux.h | 2 +- trunk/include/asm-blackfin/mach-bf537/irq.h | 4 - .../include/asm-blackfin/mach-bf537/mem_map.h | 3 +- trunk/include/asm-blackfin/mach-bf548/bf548.h | 34 +- .../asm-blackfin/mach-bf548/defBF544.h | 2 +- .../asm-blackfin/mach-bf548/defBF548.h | 2 +- .../asm-blackfin/mach-bf548/defBF549.h | 2 +- .../asm-blackfin/mach-bf548/defBF54x_base.h | 24 + trunk/include/asm-blackfin/mach-bf548/irq.h | 4 - .../include/asm-blackfin/mach-bf548/mem_map.h | 18 +- .../include/asm-blackfin/mach-bf548/portmux.h | 14 + trunk/include/asm-blackfin/mach-bf561/bf561.h | 19 - .../asm-blackfin/mach-bf561/defBF561.h | 18 +- trunk/include/asm-blackfin/mach-bf561/irq.h | 4 - .../include/asm-blackfin/mach-bf561/mem_map.h | 7 +- .../asm-blackfin/mach-common/def_LPBlackfin.h | 8 +- trunk/include/asm-blackfin/page_offset.h | 2 +- trunk/include/asm-blackfin/string.h | 2 + trunk/include/asm-blackfin/traps.h | 96 +- trunk/include/asm-cris/atomic.h | 2 + trunk/include/asm-cris/checksum.h | 2 +- trunk/include/asm-cris/ethernet.h | 3 + trunk/include/asm-cris/fasttimer.h | 16 +- trunk/include/asm-cris/hardirq.h | 1 + trunk/include/asm-cris/posix_types.h | 1 - trunk/include/asm-cris/termbits.h | 13 + trunk/include/asm-cris/thread_info.h | 9 +- trunk/include/asm-cris/tlb.h | 2 + trunk/include/asm-cris/unistd.h | 40 +- trunk/include/asm-frv/irq.h | 3 - trunk/include/asm-generic/resource.h | 2 +- trunk/include/asm-generic/tlb.h | 1 + trunk/include/asm-h8300/timex.h | 2 +- trunk/include/asm-ia64/acpi.h | 1 + trunk/include/asm-ia64/bitops.h | 17 +- trunk/include/asm-ia64/gcc_intrin.h | 5 + trunk/include/asm-ia64/hw_irq.h | 2 +- trunk/include/asm-ia64/intel_intrin.h | 3 + trunk/include/asm-ia64/iosapic.h | 2 - trunk/include/asm-ia64/pal.h | 5 +- trunk/include/asm-ia64/percpu.h | 2 +- trunk/include/asm-ia64/smp.h | 1 - trunk/include/asm-ia64/sn/bte.h | 31 +- trunk/include/asm-ia64/sn/xp.h | 27 +- trunk/include/asm-ia64/sn/xpc.h | 10 +- trunk/include/asm-ia64/tlbflush.h | 6 +- trunk/include/asm-m32r/thread_info.h | 11 +- trunk/include/asm-m32r/unistd.h | 66 +- trunk/include/asm-m68knommu/unistd.h | 4 +- trunk/include/asm-mips/8253pit.h | 10 - trunk/include/asm-mips/cpu-features.h | 6 +- trunk/include/asm-mips/cpu-info.h | 1 + trunk/include/asm-mips/dma.h | 1 + trunk/include/asm-mips/futex.h | 6 +- trunk/include/asm-mips/i8253.h | 17 +- trunk/include/asm-mips/ip32/ip32_ints.h | 4 +- trunk/include/asm-mips/jmr3927/jmr3927.h | 9 +- trunk/include/asm-mips/jmr3927/tx3927.h | 4 +- trunk/include/asm-mips/jmr3927/txx927.h | 37 - trunk/include/asm-mips/lasat/lasatint.h | 5 - trunk/include/asm-mips/mach-au1x00/au1000.h | 30 +- .../include/asm-mips/mach-au1x00/au1100_mmc.h | 7 +- trunk/include/asm-mips/mach-au1x00/timex.h | 13 - trunk/include/asm-mips/mach-cobalt/irq.h | 3 +- trunk/include/asm-mips/mach-generic/timex.h | 13 - trunk/include/asm-mips/mach-jazz/timex.h | 16 - trunk/include/asm-mips/mach-lasat/irq.h | 13 + trunk/include/asm-mips/mach-qemu/timex.h | 16 - trunk/include/asm-mips/mach-rm/timex.h | 13 - trunk/include/asm-mips/system.h | 10 +- trunk/include/asm-mips/time.h | 36 +- trunk/include/asm-mips/timex.h | 27 +- trunk/include/asm-mips/tx4927/tx4927_pci.h | 3 + trunk/include/asm-mips/tx4938/tx4938.h | 1 - trunk/include/asm-mips/txx9tmr.h | 67 + trunk/include/asm-parisc/pdc.h | 3 +- trunk/include/asm-powerpc/commproc.h | 5 +- trunk/include/asm-powerpc/cputable.h | 22 +- trunk/include/asm-powerpc/mmu-hash64.h | 1 + trunk/include/asm-powerpc/page_32.h | 4 + trunk/include/asm-powerpc/pci-bridge.h | 5 +- trunk/include/asm-powerpc/pgtable-ppc32.h | 18 + trunk/include/asm-powerpc/spu.h | 4 + trunk/include/asm-powerpc/systbl.h | 2 +- trunk/include/asm-powerpc/time.h | 28 +- trunk/include/asm-powerpc/tlbflush.h | 12 +- trunk/include/asm-powerpc/vdso_datapage.h | 8 + trunk/include/asm-s390/pgtable.h | 8 +- trunk/include/asm-s390/system.h | 5 + trunk/include/asm-sh/cache.h | 3 +- trunk/include/asm-sh/cacheflush.h | 24 +- trunk/include/asm-sh/cpu-sh3/timer.h | 6 +- trunk/include/asm-sh/irq.h | 2 +- trunk/include/asm-sh/page.h | 12 +- trunk/include/asm-sh/pgtable.h | 6 +- trunk/include/asm-sh/processor.h | 4 +- trunk/include/asm-sh/ptrace.h | 3 - trunk/include/asm-sh/setup.h | 14 + trunk/include/asm-sh/uaccess.h | 42 +- trunk/include/asm-sh/vga.h | 6 + trunk/include/asm-sh64/dma-mapping.h | 5 +- trunk/include/asm-sh64/pci.h | 9 - trunk/include/asm-sh64/ptrace.h | 2 - trunk/include/asm-sh64/scatterlist.h | 9 + trunk/include/asm-sparc/unistd.h | 9 + trunk/include/asm-sparc64/dma-mapping.h | 12 +- trunk/include/asm-sparc64/futex.h | 6 +- trunk/include/asm-sparc64/hypervisor.h | 4 + trunk/include/asm-sparc64/pci.h | 4 + trunk/include/asm-sparc64/system.h | 4 +- trunk/include/asm-sparc64/uaccess.h | 6 +- trunk/include/asm-sparc64/vio.h | 4 +- trunk/include/asm-um/pgtable-3level.h | 2 +- trunk/include/asm-um/unistd.h | 1 - trunk/include/asm-x86/acpi.h | 27 + trunk/include/asm-x86/apic_32.h | 1 + trunk/include/asm-x86/byteorder.h | 4 +- trunk/include/asm-x86/gart.h | 29 + trunk/include/asm-x86/hpet.h | 1 + trunk/include/asm-x86/i387_64.h | 5 + trunk/include/asm-x86/iommu.h | 4 +- trunk/include/asm-x86/irqflags_32.h | 21 + trunk/include/asm-x86/irqflags_64.h | 20 + trunk/include/asm-x86/kprobes_32.h | 2 +- trunk/include/asm-x86/kprobes_64.h | 2 +- trunk/include/asm-x86/lguest_hcall.h | 3 - .../asm-x86/mach-default/mach_reboot.h | 2 +- .../asm-x86/mach-es7000/mach_mpparse.h | 6 +- .../include/asm-x86/mach-voyager/setup_arch.h | 4 +- trunk/include/asm-x86/msr.h | 74 +- trunk/include/asm-x86/pci_64.h | 2 +- trunk/include/asm-x86/ptrace.h | 2 +- trunk/include/asm-x86/smp_32.h | 9 +- trunk/include/asm-x86/system_64.h | 7 + trunk/include/linux/Kbuild | 4 +- trunk/include/linux/acpi.h | 5 + trunk/include/linux/apm_bios.h | 6 +- trunk/include/linux/ata.h | 54 + trunk/include/linux/blkdev.h | 3 +- trunk/include/linux/bootmem.h | 1 - trunk/include/linux/cgroup_subsys.h | 13 +- trunk/include/linux/cpu.h | 4 - trunk/include/linux/cpu_acct.h | 14 - trunk/include/linux/cpuidle.h | 1 + trunk/include/linux/cpumask.h | 2 + trunk/include/linux/device-mapper.h | 2 + trunk/include/linux/elevator.h | 2 +- trunk/include/linux/eventpoll.h | 7 +- trunk/include/linux/ext2_fs.h | 7 - trunk/include/linux/ext3_fs.h | 20 + trunk/include/linux/f75375s.h | 21 + trunk/include/linux/fuse.h | 5 + trunk/include/linux/futex.h | 4 - trunk/include/linux/hugetlb.h | 12 +- trunk/include/linux/i2c.h | 5 - trunk/include/linux/ide.h | 15 +- trunk/include/linux/if_bonding.h | 3 +- trunk/include/linux/inet_lro.h | 3 + trunk/include/linux/ipmi_smi.h | 2 +- trunk/include/linux/irq.h | 7 + trunk/include/linux/jbd.h | 2 + trunk/include/linux/kallsyms.h | 1 + trunk/include/linux/kd.h | 2 +- trunk/include/linux/key.h | 2 +- trunk/include/linux/leds.h | 3 +- trunk/include/linux/libata.h | 66 +- trunk/include/linux/mc146818rtc.h | 3 + trunk/include/linux/mm.h | 16 + trunk/include/linux/mmc/host.h | 4 - trunk/include/linux/mroute.h | 12 + trunk/include/linux/mv643xx_eth.h | 3 + trunk/include/linux/net.h | 8 + trunk/include/linux/netdevice.h | 28 +- trunk/include/linux/netfilter/Kbuild | 18 +- trunk/include/linux/netfilter_bridge.h | 3 +- trunk/include/linux/netfilter_ipv4/Kbuild | 28 +- trunk/include/linux/netfilter_ipv6/Kbuild | 2 +- trunk/include/linux/netlink.h | 2 +- trunk/include/linux/nfs_fs.h | 1 - trunk/include/linux/pci.h | 14 +- trunk/include/linux/pci_ids.h | 16 +- trunk/include/linux/phy.h | 3 + trunk/include/linux/pid_namespace.h | 23 + trunk/include/linux/pm.h | 9 + trunk/include/linux/pm_legacy.h | 6 - trunk/include/linux/pnp.h | 4 +- trunk/include/linux/proc_fs.h | 7 +- trunk/include/linux/ptrace.h | 1 + trunk/include/linux/quicklist.h | 8 - trunk/include/linux/rtc.h | 5 +- trunk/include/linux/rtnetlink.h | 2 + trunk/include/linux/scatterlist.h | 107 +- trunk/include/linux/sched.h | 35 +- trunk/include/linux/screen_info.h | 2 + trunk/include/linux/selinux.h | 2 +- trunk/include/linux/serial_core.h | 2 +- trunk/include/linux/skbuff.h | 5 +- trunk/include/linux/slab.h | 5 + trunk/include/linux/slab_def.h | 3 - trunk/include/linux/smp.h | 7 +- trunk/include/linux/string.h | 12 +- trunk/include/linux/sunrpc/debug.h | 5 - trunk/include/linux/sunrpc/rpc_rdma.h | 32 +- trunk/include/linux/sunrpc/xprtsock.h | 6 - trunk/include/linux/sysctl.h | 6 - trunk/include/linux/tc_act/Kbuild | 1 + trunk/include/linux/thread_info.h | 17 +- trunk/include/linux/ticable.h | 44 - trunk/include/linux/timex.h | 1 + trunk/include/linux/tty.h | 5 +- trunk/include/linux/types.h | 2 + trunk/include/linux/usb.h | 2 + trunk/include/linux/usb_usual.h | 5 +- trunk/include/linux/usbdevice_fs.h | 3 +- trunk/include/{net => linux}/veth.h | 0 trunk/include/linux/virtio_ring.h | 21 +- trunk/include/media/videobuf-core.h | 2 + trunk/include/net/af_unix.h | 2 +- trunk/include/net/ax25.h | 2 +- trunk/include/net/dst.h | 7 + trunk/include/net/esp.h | 2 +- trunk/include/net/fib_rules.h | 3 + trunk/include/net/ieee80211.h | 8 + trunk/include/net/inet_common.h | 4 - trunk/include/net/inet_hashtables.h | 71 +- trunk/include/net/inetpeer.h | 2 +- trunk/include/net/ip6_tunnel.h | 2 +- trunk/include/net/ip_fib.h | 15 +- trunk/include/net/ip_vs.h | 42 +- trunk/include/net/irda/discovery.h | 2 +- trunk/include/net/mac80211.h | 26 +- trunk/include/net/net_namespace.h | 35 +- trunk/include/net/netfilter/nf_conntrack.h | 1 + trunk/include/net/request_sock.h | 18 +- trunk/include/net/route.h | 1 - trunk/include/net/sch_generic.h | 1 - trunk/include/net/sctp/auth.h | 2 +- trunk/include/net/sctp/command.h | 1 + trunk/include/net/sctp/constants.h | 12 +- trunk/include/net/sctp/sctp.h | 5 +- trunk/include/net/sctp/structs.h | 31 +- trunk/include/net/sctp/user.h | 2 +- trunk/include/net/sock.h | 94 +- trunk/include/net/tcp.h | 3 + trunk/include/net/xfrm.h | 7 +- trunk/include/pcmcia/cs_types.h | 2 +- trunk/include/rdma/ib_verbs.h | 2 +- trunk/include/scsi/libsas.h | 2 +- trunk/include/scsi/scsi_device.h | 28 + trunk/include/sound/version.h | 2 +- trunk/init/Kconfig | 34 +- trunk/init/do_mounts_initrd.c | 12 +- trunk/init/main.c | 4 +- trunk/ipc/mqueue.c | 12 +- trunk/kernel/Kconfig.instrumentation | 6 +- trunk/kernel/Makefile | 1 - trunk/kernel/acct.c | 4 +- trunk/kernel/cgroup.c | 9 +- trunk/kernel/cpu_acct.c | 186 -- trunk/kernel/exit.c | 14 +- trunk/kernel/fork.c | 29 +- trunk/kernel/futex.c | 89 +- trunk/kernel/futex_compat.c | 26 +- trunk/kernel/hrtimer.c | 10 +- trunk/kernel/irq/chip.c | 9 +- trunk/kernel/irq/handle.c | 8 +- trunk/kernel/kallsyms.c | 7 +- trunk/kernel/kexec.c | 1 + trunk/kernel/lockdep.c | 44 +- trunk/kernel/marker.c | 41 +- trunk/kernel/module.c | 37 +- trunk/kernel/panic.c | 18 + trunk/kernel/params.c | 25 +- trunk/kernel/pid.c | 2 + trunk/kernel/power/disk.c | 12 +- trunk/kernel/power/main.c | 3 + trunk/kernel/power/pm.c | 4 - trunk/kernel/printk.c | 2 +- trunk/kernel/ptrace.c | 6 +- trunk/kernel/resource.c | 2 +- trunk/kernel/rwsem.c | 5 +- trunk/kernel/sched.c | 474 ++-- trunk/kernel/sched_debug.c | 25 +- trunk/kernel/sched_fair.c | 114 +- trunk/kernel/sched_rt.c | 3 + trunk/kernel/sched_stats.h | 14 +- trunk/kernel/signal.c | 6 +- trunk/kernel/sys.c | 20 +- trunk/kernel/sys_ni.c | 4 + trunk/kernel/sysctl.c | 43 +- trunk/kernel/sysctl_check.c | 57 +- trunk/kernel/taskstats.c | 36 +- trunk/kernel/time/clockevents.c | 5 + trunk/kernel/time/ntp.c | 11 +- trunk/kernel/time/tick-broadcast.c | 58 +- trunk/kernel/time/tick-sched.c | 6 +- trunk/kernel/time/timer_list.c | 6 +- trunk/kernel/timer.c | 29 +- trunk/kernel/user.c | 7 +- trunk/kernel/utsname_sysctl.c | 4 + trunk/lib/Kconfig.debug | 4 +- trunk/lib/Makefile | 4 +- trunk/lib/bitmap.c | 4 + trunk/lib/hexdump.c | 3 +- trunk/lib/kobject.c | 25 +- trunk/lib/libcrc32c.c | 7 +- trunk/lib/proportions.c | 37 +- trunk/lib/rwsem.c | 2 +- trunk/lib/textsearch.c | 8 +- trunk/mm/Kconfig | 15 +- trunk/mm/backing-dev.c | 4 +- trunk/mm/filemap.c | 42 +- trunk/mm/filemap_xip.c | 11 +- trunk/mm/hugetlb.c | 172 +- trunk/mm/memory.c | 5 +- trunk/mm/memory_hotplug.c | 6 +- trunk/mm/mempolicy.c | 21 +- trunk/mm/mmap.c | 15 +- trunk/mm/nommu.c | 4 + trunk/mm/page-writeback.c | 27 +- trunk/mm/page_alloc.c | 57 +- trunk/mm/page_isolation.c | 6 +- trunk/mm/quicklist.c | 12 +- trunk/mm/rmap.c | 16 +- trunk/mm/shmem.c | 20 +- trunk/mm/slab.c | 9 +- trunk/mm/slob.c | 6 +- trunk/mm/slub.c | 146 +- trunk/mm/sparse-vmemmap.c | 13 +- trunk/mm/sparse.c | 31 +- trunk/mm/util.c | 4 +- trunk/mm/vmstat.c | 2 +- trunk/net/8021q/vlan.c | 10 +- trunk/net/8021q/vlan.h | 1 + trunk/net/8021q/vlan_dev.c | 29 +- trunk/net/9p/mod.c | 4 +- trunk/net/9p/trans_fd.c | 3 +- trunk/net/appletalk/ddp.c | 2 +- trunk/net/atm/common.c | 2 +- trunk/net/atm/mpc.c | 7 + trunk/net/ax25/af_ax25.c | 6 +- trunk/net/ax25/ax25_in.c | 2 +- trunk/net/ax25/ax25_subr.c | 2 + trunk/net/bluetooth/bnep/sock.c | 2 +- trunk/net/bluetooth/cmtp/sock.c | 2 +- trunk/net/bluetooth/hci_conn.c | 10 +- trunk/net/bluetooth/hci_sock.c | 2 +- trunk/net/bluetooth/hci_sysfs.c | 1 + trunk/net/bluetooth/hidp/sock.c | 2 +- trunk/net/bluetooth/l2cap.c | 2 +- trunk/net/bluetooth/rfcomm/sock.c | 2 +- trunk/net/bluetooth/sco.c | 2 +- trunk/net/bridge/br.c | 4 +- trunk/net/bridge/br_device.c | 3 +- trunk/net/bridge/br_fdb.c | 2 +- trunk/net/bridge/br_input.c | 7 +- trunk/net/bridge/br_netfilter.c | 3 + trunk/net/bridge/netfilter/ebt_among.c | 2 +- trunk/net/bridge/netfilter/ebt_arp.c | 2 +- trunk/net/bridge/netfilter/ebtable_broute.c | 4 +- trunk/net/compat.c | 2 + trunk/net/core/dev.c | 165 +- trunk/net/core/dev_mcast.c | 16 +- trunk/net/core/dst.c | 1 - trunk/net/core/fib_rules.c | 22 + trunk/net/core/neighbour.c | 2 + trunk/net/core/net_namespace.c | 182 +- trunk/net/core/netpoll.c | 37 +- trunk/net/core/pktgen.c | 2 - trunk/net/core/request_sock.c | 35 + trunk/net/core/scm.c | 2 + trunk/net/core/skbuff.c | 58 +- trunk/net/core/sock.c | 178 +- trunk/net/dccp/ackvec.h | 2 +- trunk/net/dccp/ccids/ccid3.c | 2 +- trunk/net/dccp/ccids/lib/loss_interval.c | 2 +- trunk/net/dccp/ipv4.c | 3 + trunk/net/dccp/ipv6.c | 3 + trunk/net/dccp/proto.c | 9 +- trunk/net/decnet/af_decnet.c | 2 +- trunk/net/decnet/dn_dev.c | 6 +- trunk/net/decnet/dn_route.c | 16 +- trunk/net/decnet/dn_rules.c | 13 +- trunk/net/econet/af_econet.c | 2 +- trunk/net/ieee80211/ieee80211_crypt_ccmp.c | 3 +- trunk/net/ieee80211/ieee80211_crypt_tkip.c | 5 +- trunk/net/ieee80211/ieee80211_crypt_wep.c | 1 - trunk/net/ieee80211/ieee80211_tx.c | 3 +- .../ieee80211/softmac/ieee80211softmac_wx.c | 2 +- trunk/net/ipv4/af_inet.c | 2 +- trunk/net/ipv4/ah4.c | 1 - trunk/net/ipv4/arp.c | 25 +- trunk/net/ipv4/devinet.c | 5 +- trunk/net/ipv4/esp4.c | 17 +- trunk/net/ipv4/fib_frontend.c | 24 +- trunk/net/ipv4/fib_rules.c | 51 +- trunk/net/ipv4/inet_diag.c | 78 +- trunk/net/ipv4/inet_hashtables.c | 7 +- trunk/net/ipv4/inet_lro.c | 19 +- trunk/net/ipv4/inet_timewait_sock.c | 13 +- trunk/net/ipv4/inetpeer.c | 42 +- trunk/net/ipv4/ip_gre.c | 2 +- trunk/net/ipv4/ip_output.c | 28 +- trunk/net/ipv4/ip_sockglue.c | 39 +- trunk/net/ipv4/ipcomp.c | 4 +- trunk/net/ipv4/ipconfig.c | 47 +- trunk/net/ipv4/ipvs/ip_vs_conn.c | 18 + trunk/net/ipv4/ipvs/ip_vs_core.c | 22 +- trunk/net/ipv4/ipvs/ip_vs_ctl.c | 49 +- trunk/net/ipv4/ipvs/ip_vs_lblc.c | 9 +- trunk/net/ipv4/ipvs/ip_vs_lblcr.c | 85 +- trunk/net/ipv4/ipvs/ip_vs_proto.c | 2 +- trunk/net/ipv4/ipvs/ip_vs_sched.c | 27 +- trunk/net/ipv4/ipvs/ip_vs_sync.c | 29 +- trunk/net/ipv4/netfilter/Kconfig | 4 +- trunk/net/ipv4/netfilter/Makefile | 20 +- trunk/net/ipv4/netfilter/ip_queue.c | 37 +- trunk/net/ipv4/netfilter/ip_tables.c | 57 +- trunk/net/ipv4/netfilter/iptable_raw.c | 2 +- .../netfilter/nf_conntrack_l3proto_ipv4.c | 3 + trunk/net/ipv4/netfilter/nf_nat_amanda.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_core.c | 7 +- trunk/net/ipv4/netfilter/nf_nat_ftp.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_h323.c | 18 +- trunk/net/ipv4/netfilter/nf_nat_irc.c | 2 +- trunk/net/ipv4/netfilter/nf_nat_pptp.c | 8 +- trunk/net/ipv4/netfilter/nf_nat_sip.c | 6 +- trunk/net/ipv4/netfilter/nf_nat_tftp.c | 2 +- trunk/net/ipv4/proc.c | 21 +- trunk/net/ipv4/raw.c | 7 +- trunk/net/ipv4/route.c | 41 +- trunk/net/ipv4/sysctl_net_ipv4.c | 2 +- trunk/net/ipv4/tcp.c | 6 +- trunk/net/ipv4/tcp_illinois.c | 2 +- trunk/net/ipv4/tcp_input.c | 168 +- trunk/net/ipv4/tcp_ipv4.c | 37 +- trunk/net/ipv4/tcp_output.c | 24 +- trunk/net/ipv4/tcp_vegas.c | 37 +- trunk/net/ipv4/tunnel4.c | 24 +- trunk/net/ipv4/udp.c | 3 + trunk/net/ipv4/udplite.c | 3 + trunk/net/ipv6/addrconf.c | 17 +- trunk/net/ipv6/af_inet6.c | 2 +- trunk/net/ipv6/ah6.c | 1 - trunk/net/ipv6/datagram.c | 6 +- trunk/net/ipv6/esp6.c | 19 +- trunk/net/ipv6/fib6_rules.c | 37 +- trunk/net/ipv6/inet6_hashtables.c | 19 +- trunk/net/ipv6/ip6_output.c | 38 +- trunk/net/ipv6/ipcomp6.c | 4 +- trunk/net/ipv6/ipv6_sockglue.c | 12 +- trunk/net/ipv6/ndisc.c | 5 +- trunk/net/ipv6/netfilter/Makefile | 28 +- trunk/net/ipv6/netfilter/ip6_queue.c | 37 +- trunk/net/ipv6/proc.c | 19 +- trunk/net/ipv6/raw.c | 3 + trunk/net/ipv6/route.c | 97 +- trunk/net/ipv6/tcp_ipv6.c | 26 +- trunk/net/ipv6/udp.c | 8 +- trunk/net/ipv6/udplite.c | 3 + trunk/net/ipv6/xfrm6_policy.c | 2 +- trunk/net/ipx/af_ipx.c | 24 +- trunk/net/irda/af_irda.c | 4 +- trunk/net/irda/ircomm/ircomm_param.c | 2 +- trunk/net/irda/ircomm/ircomm_tty.c | 2 +- trunk/net/irda/iriap.c | 2 +- trunk/net/irda/irlan/irlan_eth.c | 4 +- trunk/net/irda/irlap_frame.c | 2 +- trunk/net/irda/irlmp.c | 1 + trunk/net/irda/irnet/irnet_ppp.c | 10 + trunk/net/irda/parameters.c | 18 +- trunk/net/irda/wrapper.c | 2 +- trunk/net/iucv/af_iucv.c | 2 +- trunk/net/iucv/iucv.c | 107 +- trunk/net/key/af_key.c | 24 +- trunk/net/llc/llc_conn.c | 2 +- trunk/net/mac80211/Kconfig | 12 + trunk/net/mac80211/Makefile | 3 +- trunk/net/mac80211/aes_ccm.c | 1 - trunk/net/mac80211/ieee80211.c | 54 +- trunk/net/mac80211/ieee80211_common.h | 91 - trunk/net/mac80211/ieee80211_i.h | 4 +- trunk/net/mac80211/ieee80211_ioctl.c | 27 +- trunk/net/mac80211/ieee80211_rate.c | 27 +- trunk/net/mac80211/ieee80211_rate.h | 3 + trunk/net/mac80211/ieee80211_sta.c | 36 +- trunk/net/mac80211/rc80211_simple.c | 25 +- trunk/net/mac80211/rx.c | 17 +- trunk/net/mac80211/sta_info.c | 7 +- trunk/net/mac80211/wep.c | 5 +- trunk/net/mac80211/wpa.c | 18 +- trunk/net/netfilter/Kconfig | 2 +- trunk/net/netfilter/Makefile | 14 +- trunk/net/netfilter/nf_conntrack_core.c | 7 +- trunk/net/netfilter/nf_conntrack_extend.c | 2 +- trunk/net/netfilter/nf_conntrack_netlink.c | 4 +- trunk/net/netfilter/nf_conntrack_sip.c | 4 +- trunk/net/netfilter/nf_sockopt.c | 117 +- trunk/net/netfilter/x_tables.c | 8 +- trunk/net/netfilter/xt_CONNMARK.c | 10 +- trunk/net/netfilter/xt_CONNSECMARK.c | 10 +- trunk/net/netfilter/xt_TCPMSS.c | 4 +- trunk/net/netfilter/xt_connlimit.c | 5 +- trunk/net/netfilter/xt_hashlimit.c | 2 +- trunk/net/netfilter/xt_time.c | 5 +- trunk/net/netfilter/xt_u32.c | 5 +- trunk/net/netlabel/netlabel_mgmt.c | 2 +- trunk/net/netlink/af_netlink.c | 14 +- trunk/net/netrom/af_netrom.c | 6 +- trunk/net/netrom/nr_dev.c | 2 +- trunk/net/packet/af_packet.c | 33 +- trunk/net/rfkill/rfkill.c | 51 +- trunk/net/rose/af_rose.c | 6 +- trunk/net/rose/rose_dev.c | 2 +- trunk/net/rxrpc/Kconfig | 1 + trunk/net/rxrpc/af_rxrpc.c | 2 +- trunk/net/rxrpc/ar-local.c | 4 +- trunk/net/rxrpc/rxkad.c | 10 +- trunk/net/sched/cls_u32.c | 14 +- trunk/net/sched/sch_generic.c | 5 +- trunk/net/sched/sch_hfsc.c | 2 +- trunk/net/sched/sch_teql.c | 3 + trunk/net/sctp/Kconfig | 6 +- trunk/net/sctp/associola.c | 10 +- trunk/net/sctp/auth.c | 8 +- trunk/net/sctp/bind_addr.c | 39 +- trunk/net/sctp/endpointola.c | 35 +- trunk/net/sctp/input.c | 43 +- trunk/net/sctp/inqueue.c | 4 + trunk/net/sctp/ipv6.c | 2 +- trunk/net/sctp/outqueue.c | 41 +- trunk/net/sctp/proc.c | 6 +- trunk/net/sctp/protocol.c | 10 +- trunk/net/sctp/sm_make_chunk.c | 203 +- trunk/net/sctp/sm_sideeffect.c | 10 +- trunk/net/sctp/sm_statefuns.c | 38 +- trunk/net/sctp/socket.c | 40 +- trunk/net/sctp/sysctl.c | 9 + trunk/net/sctp/transport.c | 5 +- trunk/net/sctp/ulpevent.c | 2 +- trunk/net/sctp/ulpqueue.c | 35 +- trunk/net/socket.c | 11 +- trunk/net/sunrpc/auth_gss/auth_gss.c | 6 +- trunk/net/sunrpc/auth_gss/gss_krb5_crypto.c | 6 +- trunk/net/sunrpc/auth_gss/gss_krb5_mech.c | 8 +- trunk/net/sunrpc/auth_gss/gss_krb5_seal.c | 2 +- trunk/net/sunrpc/auth_gss/gss_krb5_wrap.c | 1 - trunk/net/sunrpc/rpc_pipe.c | 2 +- trunk/net/sunrpc/sysctl.c | 3 +- trunk/net/sunrpc/xprt.c | 2 +- trunk/net/sunrpc/xprtrdma/rpc_rdma.c | 43 +- trunk/net/sunrpc/xprtrdma/transport.c | 12 +- trunk/net/sunrpc/xprtsock.c | 4 +- trunk/net/tipc/socket.c | 4 +- trunk/net/unix/af_unix.c | 20 +- trunk/net/unix/garbage.c | 26 +- trunk/net/wireless/wext.c | 2 +- trunk/net/x25/af_x25.c | 2 +- trunk/net/x25/x25_forward.c | 5 +- trunk/net/xfrm/xfrm_algo.c | 1 - trunk/net/xfrm/xfrm_policy.c | 14 +- trunk/net/xfrm/xfrm_state.c | 18 +- trunk/net/xfrm/xfrm_user.c | 19 +- trunk/samples/markers/marker-example.c | 3 +- trunk/samples/markers/probe-example.c | 2 +- trunk/scripts/bloat-o-meter | 3 +- trunk/scripts/checkpatch.pl | 395 +++- trunk/scripts/kconfig/Makefile | 7 +- trunk/scripts/kconfig/conf.c | 3 +- trunk/scripts/kconfig/confdata.c | 119 +- trunk/scripts/mkmakefile | 6 + trunk/security/commoncap.c | 13 + trunk/security/dummy.c | 2 +- trunk/security/selinux/selinuxfs.c | 65 +- trunk/security/selinux/ss/avtab.c | 32 +- trunk/security/selinux/ss/avtab.h | 5 +- trunk/security/selinux/ss/conditional.c | 3 +- trunk/security/selinux/ss/ebitmap.c | 2 +- trunk/security/selinux/ss/mls.c | 66 +- trunk/security/selinux/ss/mls.h | 2 + trunk/security/selinux/ss/policydb.c | 45 +- trunk/security/selinux/ss/policydb.h | 3 + trunk/security/selinux/xfrm.c | 13 +- trunk/sound/arm/pxa2xx-ac97.c | 4 +- trunk/sound/core/oss/mixer_oss.c | 101 +- trunk/sound/drivers/mpu401/mpu401_uart.c | 12 +- trunk/sound/drivers/portman2x4.c | 2 +- trunk/sound/oss/msnd.h | 4 +- trunk/sound/pci/ca0106/ca0106_mixer.c | 18 +- trunk/sound/pci/ca0106/ca0106_proc.c | 4 +- trunk/sound/pci/cmipci.c | 5 +- trunk/sound/pci/emu10k1/emumixer.c | 65 +- trunk/sound/pci/emu10k1/p16v.c | 4 + trunk/sound/pci/hda/hda_codec.c | 40 +- trunk/sound/pci/hda/hda_local.h | 1 + trunk/sound/pci/hda/patch_analog.c | 8 + trunk/sound/pci/hda/patch_realtek.c | 1 - trunk/sound/pci/hda/patch_sigmatel.c | 57 +- trunk/sound/soc/codecs/cs4270.c | 3 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 4 +- trunk/sound/soc/s3c24xx/s3c2443-ac97.c | 2 +- 2378 files changed, 43215 insertions(+), 34770 deletions(-) create mode 100644 trunk/Documentation/ABI/testing/sysfs-kernel-uids create mode 100644 trunk/Documentation/ja_JP/SubmittingPatches create mode 100644 trunk/Documentation/ko_KR/stable_api_nonsense.txt create mode 100644 trunk/Documentation/namespaces/compatibility-list.txt delete mode 100644 trunk/Documentation/networking/Configurable delete mode 100644 trunk/Documentation/networking/comx.txt delete mode 100644 trunk/Documentation/networking/ncsa-telnet delete mode 100644 trunk/Documentation/networking/pt.txt delete mode 100644 trunk/Documentation/networking/routing.txt delete mode 100644 trunk/Documentation/networking/slicecom.hun delete mode 100644 trunk/Documentation/networking/slicecom.txt create mode 100644 trunk/Documentation/scsi/link_power_management_policy.txt delete mode 100644 trunk/Documentation/tipar.txt create mode 100644 trunk/Documentation/x86_64/uefi.txt create mode 100644 trunk/arch/arm/configs/zylonite_defconfig create mode 100644 trunk/arch/avr32/kernel/stacktrace.c create mode 100644 trunk/arch/blackfin/Kconfig.debug create mode 100644 trunk/arch/blackfin/configs/H8606_defconfig delete mode 100644 trunk/arch/blackfin/lib/udivdi3.S create mode 100644 trunk/arch/blackfin/mach-bf527/boards/Kconfig delete mode 100644 trunk/arch/blackfin/mach-bf527/boards/eth_mac.c create mode 100644 trunk/arch/blackfin/mach-bf533/boards/H8606.c create mode 100644 trunk/arch/blackfin/mach-bf533/boards/Kconfig create mode 100644 trunk/arch/blackfin/mach-bf537/boards/Kconfig delete mode 100644 trunk/arch/blackfin/mach-bf537/boards/eth_mac.c create mode 100644 trunk/arch/blackfin/mach-bf548/boards/Kconfig create mode 100644 trunk/arch/blackfin/mach-bf561/boards/Kconfig create mode 100644 trunk/arch/cris/arch-v32/kernel/cache.c create mode 100644 trunk/arch/cris/arch-v32/kernel/cacheflush.S create mode 100644 trunk/arch/ia64/kernel/.gitignore mode change 100755 => 100644 trunk/arch/ia64/scripts/unwcheck.py create mode 100644 trunk/arch/mips/au1000/mtx-1/platform.c create mode 100644 trunk/arch/mips/kernel/cevt-bcm1480.c create mode 100644 trunk/arch/mips/kernel/cevt-sb1250.c create mode 100644 trunk/arch/mips/kernel/cevt-txx9.c create mode 100644 trunk/arch/mips/kernel/csrc-bcm1480.c create mode 100644 trunk/arch/mips/kernel/csrc-r4k.c create mode 100644 trunk/arch/mips/kernel/csrc-sb1250.c create mode 100644 trunk/arch/mips/kernel/smp-up.c create mode 100644 trunk/arch/mips/qemu/q-console.c delete mode 100644 trunk/arch/parisc/lib/libgcc/Makefile delete mode 100644 trunk/arch/parisc/lib/libgcc/__ashldi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__ashrdi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__clzsi2.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__divdi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__divsi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__lshrdi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__moddi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__modsi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__muldi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__udivdi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__udivmoddi4.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__udivmodsi4.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__udivsi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__umoddi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__umodsi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/__umulsidi3.c delete mode 100644 trunk/arch/parisc/lib/libgcc/libgcc.h delete mode 100644 trunk/arch/parisc/lib/milli/Makefile delete mode 100644 trunk/arch/parisc/lib/milli/divI.S delete mode 100644 trunk/arch/parisc/lib/milli/divU.S delete mode 100644 trunk/arch/parisc/lib/milli/div_const.S delete mode 100644 trunk/arch/parisc/lib/milli/dyncall.S delete mode 100644 trunk/arch/parisc/lib/milli/milli.S delete mode 100644 trunk/arch/parisc/lib/milli/milli.h delete mode 100644 trunk/arch/parisc/lib/milli/mulI.S delete mode 100644 trunk/arch/parisc/lib/milli/remI.S delete mode 100644 trunk/arch/parisc/lib/milli/remU.S create mode 100644 trunk/arch/powerpc/platforms/cell/spu_notify.c delete mode 100644 trunk/arch/sh/boards/snapgear/rtc.c delete mode 100644 trunk/arch/sh/drivers/pci/pci-st40.c delete mode 100644 trunk/arch/sh/drivers/pci/pci-st40.h rename trunk/arch/x86/{Kconfig.i386 => Kconfig} (74%) delete mode 100644 trunk/arch/x86/Kconfig.x86_64 rename trunk/arch/x86/kernel/cpu/cpufreq/{Kconfig_32 => Kconfig} (77%) delete mode 100644 trunk/arch/x86/kernel/cpu/cpufreq/Kconfig_64 delete mode 100644 trunk/drivers/char/tipar.c create mode 100644 trunk/drivers/hwmon/i5k_amb.c create mode 100644 trunk/drivers/net/fec_mpc52xx.c create mode 100644 trunk/drivers/net/fec_mpc52xx.h create mode 100644 trunk/drivers/net/fec_mpc52xx_phy.c rename trunk/drivers/ps3/{sys-manager.c => ps3-sys-manager.c} (100%) rename trunk/drivers/ps3/{vuart.c => ps3-vuart.c} (99%) create mode 100644 trunk/drivers/serial/crisv10.h create mode 100644 trunk/drivers/video/efifb.c create mode 100644 trunk/drivers/watchdog/it8712f_wdt.c create mode 100644 trunk/drivers/watchdog/sbc7240_wdt.c create mode 100644 trunk/fs/cifs/cifs_spnego.c create mode 100644 trunk/fs/cifs/cifs_spnego.h delete mode 100644 trunk/include/asm-arm26/irq_regs.h delete mode 100644 trunk/include/asm-mips/8253pit.h delete mode 100644 trunk/include/asm-mips/mach-au1x00/timex.h delete mode 100644 trunk/include/asm-mips/mach-generic/timex.h delete mode 100644 trunk/include/asm-mips/mach-jazz/timex.h create mode 100644 trunk/include/asm-mips/mach-lasat/irq.h delete mode 100644 trunk/include/asm-mips/mach-qemu/timex.h delete mode 100644 trunk/include/asm-mips/mach-rm/timex.h create mode 100644 trunk/include/asm-mips/txx9tmr.h create mode 100644 trunk/include/asm-sh/vga.h create mode 100644 trunk/include/asm-x86/gart.h delete mode 100644 trunk/include/linux/cpu_acct.h create mode 100644 trunk/include/linux/f75375s.h delete mode 100644 trunk/include/linux/ticable.h rename trunk/include/{net => linux}/veth.h (100%) delete mode 100644 trunk/kernel/cpu_acct.c delete mode 100644 trunk/net/mac80211/ieee80211_common.h diff --git a/[refs] b/[refs] index 484a46648102..34f51e70d8d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4ff891eb3d3dd6854f11d616c6397a0e403f4e88 +refs/heads/master: 4fd3670eb1d3c33e8952cf1e79edbb2d517dcfb5 diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX index 299615d821ac..c3014df066c4 100644 --- a/trunk/Documentation/00-INDEX +++ b/trunk/Documentation/00-INDEX @@ -262,6 +262,8 @@ mtrr.txt - how to use PPro Memory Type Range Registers to increase performance. mutex-design.txt - info on the generic mutex subsystem. +namespaces/ + - directory with various information about namespaces nbd.txt - info on a TCP implementation of a network block device. netlabel/ diff --git a/trunk/Documentation/ABI/testing/sysfs-kernel-uids b/trunk/Documentation/ABI/testing/sysfs-kernel-uids new file mode 100644 index 000000000000..648d65dbc0e7 --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-kernel-uids @@ -0,0 +1,14 @@ +What: /sys/kernel/uids//cpu_shares +Date: December 2007 +Contact: Dhaval Giani + Srivatsa Vaddagiri +Description: + The /sys/kernel/uids//cpu_shares tunable is used + to set the cpu bandwidth a user is allowed. This is a + propotional value. What that means is that if there + are two users logged in, each with an equal number of + shares, then they will get equal CPU bandwidth. Another + example would be, if User A has shares = 1024 and user + B has shares = 2048, User B will get twice the CPU + bandwidth user A will. For more details refer + Documentation/sched-design-CFS.txt diff --git a/trunk/Documentation/DocBook/Makefile b/trunk/Documentation/DocBook/Makefile index 054a7ecf64c6..4953bc258729 100644 --- a/trunk/Documentation/DocBook/Makefile +++ b/trunk/Documentation/DocBook/Makefile @@ -11,7 +11,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \ procfs-guide.xml writing_usb_driver.xml \ kernel-api.xml filesystems.xml lsm.xml usb.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ - genericirq.xml s390-drivers.xml + genericirq.xml s390-drivers.xml uio-howto.xml ### # The build process is as follows (targets): diff --git a/trunk/Documentation/DocBook/uio-howto.tmpl b/trunk/Documentation/DocBook/uio-howto.tmpl index c119484258b8..fdd7f4f887b7 100644 --- a/trunk/Documentation/DocBook/uio-howto.tmpl +++ b/trunk/Documentation/DocBook/uio-howto.tmpl @@ -29,6 +29,12 @@ + + 0.4 + 2007-11-26 + hjk + Removed section about uio_dummy. + 0.3 2007-04-29 @@ -94,6 +100,26 @@ interested in translating it, please email me user space. This simplifies development and reduces the risk of serious bugs within a kernel module. + + Please note that UIO is not an universal driver interface. Devices + that are already handled well by other kernel subsystems (like + networking or serial or USB) are no candidates for an UIO driver. + Hardware that is ideally suited for an UIO driver fulfills all of + the following: + + + + The device has memory that can be mapped. The device can be + controlled completely by writing to this memory. + + + The device usually generates interrupts. + + + The device does not fit into one of the standard kernel + subsystems. + + @@ -174,8 +200,9 @@ interested in translating it, please email me For cards that don't generate interrupts but need to be polled, there is the possibility to set up a timer that triggers the interrupt handler at configurable time intervals. - See drivers/uio/uio_dummy.c for an - example of this technique. + This interrupt simulation is done by calling + uio_event_notify() + from the timer's event handler. @@ -263,63 +290,11 @@ offset = N * getpagesize(); - - -Using uio_dummy - - Well, there is no real use for uio_dummy. Its only purpose is - to test most parts of the UIO system (everything except - hardware interrupts), and to serve as an example for the - kernel module that you will have to write yourself. - - - -What uio_dummy does - - The kernel module uio_dummy.ko creates a - device that uses a timer to generate periodic interrupts. The - interrupt handler does nothing but increment a counter. The - driver adds two custom attributes, count - and freq, that appear under - /sys/devices/platform/uio_dummy/. - - - - The attribute count can be read and - written. The associated file - /sys/devices/platform/uio_dummy/count - appears as a normal text file and contains the total number of - timer interrupts. If you look at it (e.g. using - cat), you'll notice it is slowly counting - up. - - - - The attribute freq can be read and written. - The content of - /sys/devices/platform/uio_dummy/freq - represents the number of system timer ticks between two timer - interrupts. The default value of freq is - the value of the kernel variable HZ, which - gives you an interval of one second. Lower values will - increase the frequency. Try the following: - - -cd /sys/devices/platform/uio_dummy/ -echo 100 > freq - - - Use cat count to see how the interrupt - frequency changes. - - - - Writing your own kernel module - Please have a look at uio_dummy.c as an + Please have a look at uio_cif.c as an example. The following paragraphs explain the different sections of this file. @@ -354,9 +329,8 @@ See the description below for details. interrupt, it's your modules task to determine the irq number during initialization. If you don't have a hardware generated interrupt but want to trigger the interrupt handler in some other way, set -irq to UIO_IRQ_CUSTOM. The -uio_dummy module does this as it triggers the event mechanism in a timer -routine. If you had no interrupt at all, you could set +irq to UIO_IRQ_CUSTOM. +If you had no interrupt at all, you could set irq to UIO_IRQ_NONE, though this rarely makes sense. diff --git a/trunk/Documentation/SubmittingPatches b/trunk/Documentation/SubmittingPatches index a30dd4480ad4..681e2b36195c 100644 --- a/trunk/Documentation/SubmittingPatches +++ b/trunk/Documentation/SubmittingPatches @@ -464,8 +464,8 @@ section Linus Computer Science 101. Nuff said. If your code deviates too much from this, it is likely to be rejected without further review, and without comment. -Once significant exception is when moving code from one file to -another in this case you should not modify the moved code at all in +One significant exception is when moving code from one file to +another -- in this case you should not modify the moved code at all in the same patch which moves it. This clearly delineates the act of moving the code and your changes. This greatly aids review of the actual differences and allows tools to better track the history of diff --git a/trunk/Documentation/accounting/getdelays.c b/trunk/Documentation/accounting/getdelays.c index ab82b7f53312..d6cb1a86fd61 100644 --- a/trunk/Documentation/accounting/getdelays.c +++ b/trunk/Documentation/accounting/getdelays.c @@ -25,6 +25,7 @@ #include #include +#include /* * Generic macros for dealing with netlink sockets. Might be duplicated @@ -78,6 +79,7 @@ static void usage(void) fprintf(stderr, " -i: print IO accounting (works only with -p)\n"); fprintf(stderr, " -l: listen forever\n"); fprintf(stderr, " -v: debug on\n"); + fprintf(stderr, " -C: container path\n"); } /* @@ -212,6 +214,14 @@ void task_context_switch_counts(struct taskstats *t) t->nvcsw, t->nivcsw); } +void print_cgroupstats(struct cgroupstats *c) +{ + printf("sleeping %llu, blocked %llu, running %llu, stopped %llu, " + "uninterruptible %llu\n", c->nr_sleeping, c->nr_io_wait, + c->nr_running, c->nr_stopped, c->nr_uninterruptible); +} + + void print_ioacct(struct taskstats *t) { printf("%s: read=%llu, write=%llu, cancelled_write=%llu\n", @@ -239,11 +249,14 @@ int main(int argc, char *argv[]) int maskset = 0; char *logfile = NULL; int loop = 0; + int containerset = 0; + char containerpath[1024]; + int cfd = 0; struct msgtemplate msg; while (1) { - c = getopt(argc, argv, "qdiw:r:m:t:p:vl"); + c = getopt(argc, argv, "qdiw:r:m:t:p:vlC:"); if (c < 0) break; @@ -260,6 +273,10 @@ int main(int argc, char *argv[]) printf("printing task/process context switch rates\n"); print_task_context_switch_counts = 1; break; + case 'C': + containerset = 1; + strncpy(containerpath, optarg, strlen(optarg) + 1); + break; case 'w': logfile = strdup(optarg); printf("write to file %s\n", logfile); @@ -334,6 +351,11 @@ int main(int argc, char *argv[]) } } + if (tid && containerset) { + fprintf(stderr, "Select either -t or -C, not both\n"); + goto err; + } + if (tid) { rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET, cmd_type, &tid, sizeof(__u32)); @@ -344,6 +366,20 @@ int main(int argc, char *argv[]) } } + if (containerset) { + cfd = open(containerpath, O_RDONLY); + if (cfd < 0) { + perror("error opening container file"); + goto err; + } + rc = send_cmd(nl_sd, id, mypid, CGROUPSTATS_CMD_GET, + CGROUPSTATS_CMD_ATTR_FD, &cfd, sizeof(__u32)); + if (rc < 0) { + perror("error sending cgroupstats command"); + goto err; + } + } + do { int i; @@ -422,6 +458,9 @@ int main(int argc, char *argv[]) } break; + case CGROUPSTATS_TYPE_CGROUP_STATS: + print_cgroupstats(NLA_DATA(na)); + break; default: fprintf(stderr, "Unknown nla_type %d\n", na->nla_type); @@ -443,5 +482,7 @@ int main(int argc, char *argv[]) close(nl_sd); if (fd) close(fd); + if (cfd) + close(cfd); return 0; } diff --git a/trunk/Documentation/feature-removal-schedule.txt b/trunk/Documentation/feature-removal-schedule.txt index 6bb9be54ab76..20c4c8bac9d7 100644 --- a/trunk/Documentation/feature-removal-schedule.txt +++ b/trunk/Documentation/feature-removal-schedule.txt @@ -181,15 +181,6 @@ Who: Nick Piggin --------------------------- -What: Interrupt only SA_* flags -When: September 2007 -Why: The interrupt related SA_* flags are replaced by IRQF_* to move them - out of the signal namespace. - -Who: Thomas Gleixner - ---------------------------- - What: PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment When: October 2008 Why: The stacking of class devices makes these values misleading and diff --git a/trunk/Documentation/hwmon/sysfs-interface b/trunk/Documentation/hwmon/sysfs-interface index a17b692d2679..f4a8ebc1ef1a 100644 --- a/trunk/Documentation/hwmon/sysfs-interface +++ b/trunk/Documentation/hwmon/sysfs-interface @@ -328,6 +328,37 @@ curr[1-*]_input Current input value Unit: milliampere RO +********* +* Power * +********* + +power[1-*]_average Average power use + Unit: microWatt + RO + +power[1-*]_average_highest Historical average maximum power use + Unit: microWatt + RO + +power[1-*]_average_lowest Historical average minimum power use + Unit: microWatt + RO + +power[1-*]_input Instantaneous power use + Unit: microWatt + RO + +power[1-*]_input_highest Historical maximum power use + Unit: microWatt + RO + +power[1-*]_input_lowest Historical minimum power use + Unit: microWatt + RO + +power[1-*]_reset_history Reset input_highest, input_lowest, + average_highest and average_lowest. + WO ********** * Alarms * diff --git a/trunk/Documentation/i2c/summary b/trunk/Documentation/i2c/summary index 003c7319b8c7..13ab076dcd92 100644 --- a/trunk/Documentation/i2c/summary +++ b/trunk/Documentation/i2c/summary @@ -1,5 +1,3 @@ -This is an explanation of what i2c is, and what is supported in this package. - I2C and SMBus ============= @@ -33,52 +31,17 @@ When we talk about I2C, we use the following terms: Client An Algorithm driver contains general code that can be used for a whole class -of I2C adapters. Each specific adapter driver depends on one algorithm -driver. +of I2C adapters. Each specific adapter driver either depends on one algorithm +driver, or includes its own implementation. A Driver driver (yes, this sounds ridiculous, sorry) contains the general code to access some type of device. Each detected device gets its own data in the Client structure. Usually, Driver and Client are more closely integrated than Algorithm and Adapter. -For a given configuration, you will need a driver for your I2C bus (usually -a separate Adapter and Algorithm driver), and drivers for your I2C devices -(usually one driver for each device). There are no I2C device drivers -in this package. See the lm_sensors project http://www.lm-sensors.nu -for device drivers. +For a given configuration, you will need a driver for your I2C bus, and +drivers for your I2C devices (usually one driver for each device). At this time, Linux only operates I2C (or SMBus) in master mode; you can't use these APIs to make a Linux system behave as a slave/device, either to speak a custom protocol or to emulate some other device. - - -Included Bus Drivers -==================== -Note that only stable drivers are patched into the kernel by 'mkpatch'. - - -Base modules ------------- - -i2c-core: The basic I2C code, including the /proc/bus/i2c* interface -i2c-dev: The /dev/i2c-* interface -i2c-proc: The /proc/sys/dev/sensors interface for device (client) drivers - -Algorithm drivers ------------------ - -i2c-algo-bit: A bit-banging algorithm -i2c-algo-pcf: A PCF 8584 style algorithm -i2c-algo-ibm_ocp: An algorithm for the I2C device in IBM 4xx processors (NOT BUILT BY DEFAULT) - -Adapter drivers ---------------- - -i2c-elektor: Elektor ISA card (uses i2c-algo-pcf) -i2c-elv: ELV parallel port adapter (uses i2c-algo-bit) -i2c-pcf-epp: PCF8584 on a EPP parallel port (uses i2c-algo-pcf) (NOT mkpatched) -i2c-philips-par: Philips style parallel port adapter (uses i2c-algo-bit) -i2c-adap-ibm_ocp: IBM 4xx processor I2C device (uses i2c-algo-ibm_ocp) (NOT BUILT BY DEFAULT) -i2c-pport: Primitive parallel port adapter (uses i2c-algo-bit) -i2c-velleman: Velleman K8000 parallel port adapter (uses i2c-algo-bit) - diff --git a/trunk/Documentation/i386/boot.txt b/trunk/Documentation/i386/boot.txt index 2f75e750e4f5..fc49b79bc1ab 100644 --- a/trunk/Documentation/i386/boot.txt +++ b/trunk/Documentation/i386/boot.txt @@ -785,3 +785,41 @@ IMPORTANT: All the hooks are required to preserve %esp, %ebp, %esi and After completing your hook, you should jump to the address that was in this field before your boot loader overwrote it (relocated, if appropriate.) + + +**** 32-bit BOOT PROTOCOL + +For machine with some new BIOS other than legacy BIOS, such as EFI, +LinuxBIOS, etc, and kexec, the 16-bit real mode setup code in kernel +based on legacy BIOS can not be used, so a 32-bit boot protocol needs +to be defined. + +In 32-bit boot protocol, the first step in loading a Linux kernel +should be to setup the boot parameters (struct boot_params, +traditionally known as "zero page"). The memory for struct boot_params +should be allocated and initialized to all zero. Then the setup header +from offset 0x01f1 of kernel image on should be loaded into struct +boot_params and examined. The end of setup header can be calculated as +follow: + + 0x0202 + byte value at offset 0x0201 + +In addition to read/modify/write the setup header of the struct +boot_params as that of 16-bit boot protocol, the boot loader should +also fill the additional fields of the struct boot_params as that +described in zero-page.txt. + +After setupping the struct boot_params, the boot loader can load the +32/64-bit kernel in the same way as that of 16-bit boot protocol. + +In 32-bit boot protocol, the kernel is started by jumping to the +32-bit kernel entry point, which is the start address of loaded +32/64-bit kernel. + +At entry, the CPU must be in 32-bit protected mode with paging +disabled; a GDT must be loaded with the descriptors for selectors +__BOOT_CS(0x10) and __BOOT_DS(0x18); both descriptors must be 4G flat +segment; __BOOS_CS must have execute/read permission, and __BOOT_DS +must have read/write permission; CS must be __BOOT_CS and DS, ES, SS +must be __BOOT_DS; interrupt must be disabled; %esi must hold the base +address of the struct boot_params; %ebp, %edi and %ebx must be zero. diff --git a/trunk/Documentation/i386/zero-page.txt b/trunk/Documentation/i386/zero-page.txt index 6c0817c45683..169ad423a3d1 100644 --- a/trunk/Documentation/i386/zero-page.txt +++ b/trunk/Documentation/i386/zero-page.txt @@ -1,99 +1,31 @@ ---------------------------------------------------------------------------- -!!!!!!!!!!!!!!!WARNING!!!!!!!! -The zero page is a kernel internal data structure, not a stable ABI. It might change -without warning and the kernel has no way to detect old version of it. -If you're writing some external code like a boot loader you should only use -the stable versioned real mode boot protocol described in boot.txt. Otherwise the kernel -might break you at any time. -!!!!!!!!!!!!!WARNING!!!!!!!!!!! ----------------------------------------------------------------------------- +The additional fields in struct boot_params as a part of 32-bit boot +protocol of kernel. These should be filled by bootloader or 16-bit +real-mode setup code of the kernel. References/settings to it mainly +are in: -Summary of boot_params layout (kernel point of view) - ( collected by Hans Lermen and Martin Mares ) - -The contents of boot_params are used to pass parameters from the -16-bit realmode code of the kernel to the 32-bit part. References/settings -to it mainly are in: + include/asm-x86/bootparam.h - arch/i386/boot/setup.S - arch/i386/boot/video.S - arch/i386/kernel/head.S - arch/i386/kernel/setup.c - -Offset Type Description ------- ---- ----------- - 0 32 bytes struct screen_info, SCREEN_INFO - ATTENTION, overlaps the following !!! - 2 unsigned short EXT_MEM_K, extended memory size in Kb (from int 0x15) - 0x20 unsigned short CL_MAGIC, commandline magic number (=0xA33F) - 0x22 unsigned short CL_OFFSET, commandline offset - Address of commandline is calculated: - 0x90000 + contents of CL_OFFSET - (only taken, when CL_MAGIC = 0xA33F) - 0x40 20 bytes struct apm_bios_info, APM_BIOS_INFO - 0x60 16 bytes Intel SpeedStep (IST) BIOS support information - 0x80 16 bytes hd0-disk-parameter from intvector 0x41 - 0x90 16 bytes hd1-disk-parameter from intvector 0x46 +Offset Proto Name Meaning +/Size - 0xa0 16 bytes System description table truncated to 16 bytes. - ( struct sys_desc_table_struct ) - 0xb0 - 0x13f Free. Add more parameters here if you really need them. - 0x140- 0x1be EDID_INFO Video mode setup - -0x1c4 unsigned long EFI system table pointer -0x1c8 unsigned long EFI memory descriptor size -0x1cc unsigned long EFI memory descriptor version -0x1d0 unsigned long EFI memory descriptor map pointer -0x1d4 unsigned long EFI memory descriptor map size -0x1e0 unsigned long ALT_MEM_K, alternative mem check, in Kb -0x1e4 unsigned long Scratch field for the kernel setup code -0x1e8 char number of entries in E820MAP (below) -0x1e9 unsigned char number of entries in EDDBUF (below) -0x1ea unsigned char number of entries in EDD_MBR_SIG_BUFFER (below) -0x1f1 char size of setup.S, number of sectors -0x1f2 unsigned short MOUNT_ROOT_RDONLY (if !=0) -0x1f4 unsigned short size of compressed kernel-part in the - (b)zImage-file (in 16 byte units, rounded up) -0x1f6 unsigned short swap_dev (unused AFAIK) -0x1f8 unsigned short RAMDISK_FLAGS -0x1fa unsigned short VGA-Mode (old one) -0x1fc unsigned short ORIG_ROOT_DEV (high=Major, low=minor) -0x1ff char AUX_DEVICE_INFO - -0x200 short jump to start of setup code aka "reserved" field. -0x202 4 bytes Signature for SETUP-header, ="HdrS" -0x206 unsigned short Version number of header format - Current version is 0x0201... -0x208 8 bytes (used by setup.S for communication with boot loaders, - look there) -0x210 char LOADER_TYPE, = 0, old one - else it is set by the loader: - 0xTV: T=0 for LILO - 1 for Loadlin - 2 for bootsect-loader - 3 for SYSLINUX - 4 for ETHERBOOT - 5 for ELILO - 7 for GRuB - 8 for U-BOOT - 9 for Xen - V = version -0x211 char loadflags: - bit0 = 1: kernel is loaded high (bzImage) - bit7 = 1: Heap and pointer (see below) set by boot - loader. -0x212 unsigned short (setup.S) -0x214 unsigned long KERNEL_START, where the loader started the kernel -0x218 unsigned long INITRD_START, address of loaded ramdisk image -0x21c unsigned long INITRD_SIZE, size in bytes of ramdisk image -0x220 4 bytes (setup.S) -0x224 unsigned short setup.S heap end pointer -0x226 unsigned short zero_pad -0x228 unsigned long cmd_line_ptr -0x22c unsigned long ramdisk_max -0x230 16 bytes trampoline -0x290 - 0x2cf EDD_MBR_SIG_BUFFER (edd.S) -0x2d0 - 0xd00 E820MAP -0xd00 - 0xeff EDDBUF (edd.S) for disk signature read sector -0xd00 - 0xeeb EDDBUF (edd.S) for edd data +000/040 ALL screen_info Text mode or frame buffer information + (struct screen_info) +040/014 ALL apm_bios_info APM BIOS information (struct apm_bios_info) +060/010 ALL ist_info Intel SpeedStep (IST) BIOS support information + (struct ist_info) +080/010 ALL hd0_info hd0 disk parameter, OBSOLETE!! +090/010 ALL hd1_info hd1 disk parameter, OBSOLETE!! +0A0/010 ALL sys_desc_table System description table (struct sys_desc_table) +140/080 ALL edid_info Video mode setup (struct edid_info) +1C0/020 ALL efi_info EFI 32 information (struct efi_info) +1E0/004 ALL alk_mem_k Alternative mem check, in KB +1E4/004 ALL scratch Scratch field for the kernel setup code +1E8/001 ALL e820_entries Number of entries in e820_map (below) +1E9/001 ALL eddbuf_entries Number of entries in eddbuf (below) +1EA/001 ALL edd_mbr_sig_buf_entries Number of entries in edd_mbr_sig_buffer + (below) +290/040 ALL edd_mbr_sig_buffer EDD MBR signatures +2D0/A00 ALL e820_map E820 memory map table + (array of struct e820entry) +D00/1EC ALL eddbuf EDD data (array of struct edd_info) diff --git a/trunk/Documentation/ja_JP/HOWTO b/trunk/Documentation/ja_JP/HOWTO index d9d832c010ef..488c77fa3aae 100644 --- a/trunk/Documentation/ja_JP/HOWTO +++ b/trunk/Documentation/ja_JP/HOWTO @@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a fork. So if you have any comments or updates for this file, please try to update the original English file first. -Last Updated: 2007/09/23 +Last Updated: 2007/11/16 ================================== これは、 -linux-2.6.23/Documentation/HOWTO +linux-2.6.24/Documentation/HOWTO の和訳です。 翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > -翻訳日: 2007/09/19 +翻訳日: 2007/11/10 翻訳者: Tsugikazu Shibata 校正者: 松倉さん 小林 雅典さん (Masanori Kobayasi) @@ -110,7 +110,7 @@ Linux カーネルソースツリーは幅広い範囲のドキュメントを 新しいドキュメントファイルも追加することを勧めます。 カーネルの変更が、カーネルがユーザ空間に公開しているインターフェイスの 変更を引き起こす場合、その変更を説明するマニュアルページのパッチや情報 -をマニュアルページのメンテナ mtk-manpages@gmx.net に送ることを勧めま +をマニュアルページのメンテナ mtk.manpages@gmail.com に送ることを勧めま す。 以下はカーネルソースツリーに含まれている読んでおくべきファイルの一覧で diff --git a/trunk/Documentation/ja_JP/SubmittingPatches b/trunk/Documentation/ja_JP/SubmittingPatches new file mode 100644 index 000000000000..a9dc1243e859 --- /dev/null +++ b/trunk/Documentation/ja_JP/SubmittingPatches @@ -0,0 +1,556 @@ +NOTE: +This is a version of Documentation/SubmittingPatches into Japanese. +This document is maintained by Keiichi KII +and the JF Project team . +If you find any difference between this document and the original file +or a problem with the translation, +please contact the maintainer of this file or JF project. + +Please also note that the purpose of this file is to be easier to read +for non English (read: Japanese) speakers and is not intended as a +fork. So if you have any comments or updates of this file, please try +to update the original English file first. + +Last Updated: 2007/10/24 +================================== +これは、 +linux-2.6.23/Documentation/SubmittingPatches の和訳 +です。 +翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > +翻訳日: 2007/10/17 +翻訳者: Keiichi Kii +校正者: Masanari Kobayashi さん + Matsukura さん +================================== + + Linux カーネルに変更を加えるための Howto + 又は + かの Linus Torvalds の取り扱い説明書 + +Linux カーネルに変更を加えたいと思っている個人又は会社にとって、パッ +チの投稿に関連した仕組みに慣れていなければ、その過程は時々みなさんを +おじけづかせることもあります。この文章はあなたの変更を大いに受け入れ +てもらえやすくする提案を集めたものです。 + +コードを投稿する前に、Documentation/SubmitChecklist の項目リストに目 +を通してチェックしてください。もしあなたがドライバーを投稿しようとし +ているなら、Documentation/SubmittingDrivers にも目を通してください。 + +-------------------------------------------- +セクション1 パッチの作り方と送り方 +-------------------------------------------- + +1) 「 diff -up 」 +------------ + +パッチの作成には「 diff -up 」又は「 diff -uprN 」を使ってください。 + +Linux カーネルに対する全ての変更は diff(1) コマンドによるパッチの形式で +生成してください。パッチを作成するときには、diff(1) コマンドに「 -u 」引 +数を指定して、unified 形式のパッチを作成することを確認してください。また、 +変更がどの C 関数で行われたのかを表示する「 -p 」引数を使ってください。 +この引数は生成した差分をずっと読みやすくしてくれます。パッチは Linux +カーネルソースの中のサブディレクトリではなく Linux カーネルソースのルート +ディレクトリを基準にしないといけません。 + +1個のファイルについてのパッチを作成するためには、ほとんどの場合、 +以下の作業を行えば十分です。 + + SRCTREE= linux-2.6 + MYFILE= drivers/net/mydriver.c + + cd $SRCTREE + cp $MYFILE $MYFILE.orig + vi $MYFILE # make your change + cd .. + diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch + +複数のファイルについてのパッチを作成するためには、素の( vanilla )、す +なわち変更を加えてない Linux カーネルを展開し、自分の Linux カーネル +ソースとの差分を生成しないといけません。例えば、 + + MYSRC= /devel/linux-2.6 + + tar xvfz linux-2.6.12.tar.gz + mv linux-2.6.12 linux-2.6.12-vanilla + diff -uprN -X linux-2.6.12-vanilla/Documentation/dontdiff \ + linux-2.6.12-vanilla $MYSRC > /tmp/patch + +dontdiff ファイルには Linux カーネルのビルドプロセスの過程で生成された +ファイルの一覧がのっています。そして、それらはパッチを生成する diff(1) +コマンドで無視されるべきです。dontdiff ファイルは 2.6.12 以後のバージョ +ンの Linux カーネルソースツリーに含まれています。それより前のバージョン +の Linux カーネルソースツリーに対する dontdiff ファイルは、 +から取得することができます。 + +投稿するパッチの中に関係のない余分なファイルが含まれていないことを確 +認してください。diff(1) コマンドで生成したパッチがあなたの意図したとお +りのものであることを確認してください。 + +もしあなたのパッチが多くの差分を生み出すのであれば、あなたはパッチ +を意味のあるひとまとまりごとに分けたいと思うかもしれません。 +これは他のカーネル開発者にとってレビューしやすくなるので、あなたの +パッチを受け入れてもらうためにはとても重要なことです。これを補助でき +る多くのスクリプトがあります。 + +Quilt: +http://savannah.nongnu.org/projects/quilt + +Andrew Morton's patch scripts: +http://www.zip.com.au/~akpm/linux/patches/ +このリンクの先のスクリプトの代わりとして、quilt がパッチマネジメント +ツールとして推奨されています(上のリンクを見てください)。 + +2) パッチに対する説明 + +パッチの中の変更点に対する技術的な詳細について説明してください。 + +説明はできる限り具体的に。もっとも悪い説明は「ドライバー X を更新」、 +「ドライバー X に対するバグフィックス」あるいは「このパッチはサブシス +テム X に対する更新を含んでいます。どうか取り入れてください。」などです。 + +説明が長くなりだしたのであれば、おそらくそれはパッチを分ける必要がある +という兆候です。次の #3 を見てください。 + +3) パッチの分割 + +意味のあるひとまとまりごとに変更を個々のパッチファイルに分けてください。 + +例えば、もし1つのドライバーに対するバグフィックスとパフォーマンス強 +化の両方の変更を含んでいるのであれば、その変更を2つ以上のパッチに分 +けてください。もし変更箇所に API の更新と、その新しい API を使う新たな +ドライバーが含まれているなら、2つのパッチに分けてください。 + +一方で、もしあなたが多数のファイルに対して意味的に同じ1つの変更を加え +るのであれば、その変更を1つのパッチにまとめてください。言いかえると、 +意味的に同じ1つの変更は1つのパッチの中に含まれます。 + +あるパッチが変更を完結させるために他のパッチに依存していたとしても、 +それは問題ありません。パッチの説明の中で「このパッチはパッチ X に依存 +している」と簡単に注意書きをつけてください。 + +もしパッチをより小さなパッチの集合に凝縮することができないなら、まずは +15かそこらのパッチを送り、そのレビューと統合を待って下さい。 + +4) パッチのスタイルチェック + +あなたのパッチが基本的な( Linux カーネルの)コーディングスタイルに違反し +ていないかをチェックして下さい。その詳細を Documentation/CodingStyle で +見つけることができます。コーディングスタイルの違反はレビューする人の +時間を無駄にするだけなので、恐らくあなたのパッチは読まれることすらなく +拒否されるでしょう。 + +あなたはパッチを投稿する前に最低限パッチスタイルチェッカー +( scripts/patchcheck.pl )を利用してパッチをチェックすべきです。 +もしパッチに違反がのこっているならば、それらの全てについてあなたは正当な +理由を示せるようにしておく必要があります。 + +5) 電子メールの宛先の選び方 + +MAINTAINERS ファイルとソースコードに目を通してください。そして、その変 +更がメンテナのいる特定のサブシステムに加えられるものであることが分か +れば、その人に電子メールを送ってください。 + +もし、メンテナが載っていなかったり、メンテナからの応答がないなら、 +LKML ( linux-kernel@vger.kernel.org )へパッチを送ってください。ほとんど +のカーネル開発者はこのメーリングリストに目を通しており、変更に対して +コメントを得ることができます。 + +15個より多くのパッチを同時に vger.kernel.org のメーリングリストへ送らな +いでください!!! + +Linus Torvalds は Linux カーネルに入る全ての変更に対する最終的な意思決定者 +です。電子メールアドレスは torvalds@linux-foundation.org になります。彼は +多くの電子メールを受け取っているため、できる限り彼に電子メールを送るのは +避けるべきです。 + +バグフィックスであったり、自明な変更であったり、話し合いをほとんど +必要としないパッチは Linus へ電子メールを送るか CC しなければなりません。 +話し合いを必要としたり、明確なアドバンテージがないパッチは、通常まず +は LKML へ送られるべきです。パッチが議論された後にだけ、そのパッチを +Linus へ送るべきです。 + +6) CC (カーボンコピー)先の選び方 + +特に理由がないなら、LKML にも CC してください。 + +Linus 以外のカーネル開発者は変更に気づく必要があり、その結果、彼らはそ +の変更に対してコメントをくれたり、コードに対してレビューや提案をくれ +るかもしれません。LKML とは Linux カーネル開発者にとって一番中心的なメー +リングリストです。USB やフレームバッファデバイスや VFS や SCSI サブシステ +ムなどの特定のサブシステムに関するメーリングリストもあります。あなた +の変更に、はっきりと関連のあるメーリングリストについて知りたければ +MAINTAINERS ファイルを参照してください。 + +VGER.KERNEL.ORG でホスティングされているメーリングリストの一覧が下記の +サイトに載っています。 + + +もし、変更がユーザランドのカーネルインタフェースに影響を与え +るのであれば、MAN-PAGES のメンテナ( MAINTAINERS ファイルに一覧 +があります)に man ページのパッチを送ってください。少なくとも +情報がマニュアルページの中に入ってくるように、変更が起きたという +通知を送ってください。 + +たとえ、メンテナが #4 で反応がなかったとしても、メンテナのコードに変更を +加えたときには、いつもメンテナに CC するのを忘れないようにしてください。 + +小さなパッチであれば、Adrian Bunk が管理している Trivial Patch Monkey +(ちょっとしたパッチを集めている)に CC してもいい +です。ちょっとしたパッチとは以下のルールのどれか1つを満たしていなけ +ればなりません。 + ・ドキュメントのスペルミスの修正 + ・grep(1) コマンドによる検索を困難にしているスペルの修正 + ・コンパイル時の警告の修正(無駄な警告が散乱することは好ましくないた + めです) + ・コンパイル問題の修正(それらの修正が本当に正しい場合に限る) + ・実行時の問題の修正(それらの修正が本当に問題を修正している場合に限る) + ・廃止予定の関数やマクロを使用しているコードの除去(例 check_region ) + ・問い合わせ先やドキュメントの修正 + ・移植性のないコードから移植性のあるコードへの置き換え(小さい範囲で + あればアーキテクチャ特有のことでも他の人がコピーできます) + ・作者やメンテナによる修正(すなわち patch monkey の再転送モード) +URL: + +7) MIME やリンクや圧縮ファイルや添付ファイルではなくプレインテキストのみ + +Linus や他のカーネル開発者はあなたが投稿した変更を読んで、コメントでき +る必要があります。カーネル開発者にとって、あなたが書いたコードの特定の +部分にコメントをするために、標準的な電子メールクライアントで変更が引用 +できることは重要です。 + +上記の理由で、すべてのパッチは文中に含める形式の電子メールで投稿さ +れるべきです。警告:あなたがパッチをコピー&ペーストする際には、パッ +チを改悪するエディターの折り返し機能に注意してください。 + +パッチを圧縮の有無に関わらず MIME 形式で添付しないでください。多くのポ +ピュラーな電子メールクライアントは MIME 形式の添付ファイルをプレーンテ +キストとして送信するとは限らないでしょう。そうなると、電子メールクラ +イアントがコードに対するコメントを付けることをできなくします。また、 +MIME 形式の添付ファイルは Linus に手間を取らせることになり、その変更を +受け入れてもらう可能性が低くなってしまいます。 + +例外:お使いの電子メールクライアントがパッチをめちゃくちゃにするので +あれば、誰かが MIME 形式のパッチを再送するよう求めるかもしれません。 + +警告: Mozilla のような特定の電子メールクライアントは電子メールの +ヘッダに以下のものを付加して送ります。 +---- message header ---- +Content-Type: text/plain; charset=us-ascii; format=flowed +---- message header ---- +問題は、「 format=flowed 」が付いた電子メールを特定の受信側の電子メール +クライアントがタブをスペースに置き換えるというような変更をすることです。 +したがって送られてきたパッチは壊れているように見えるでしょう。 + +これを修正するには、mozilla の defaults/pref/mailnews.js ファイルを +以下のように修正します。 +pref("mailnews.send_plaintext_flowed", false); // RFC 2646======= +pref("mailnews.display.disable_format_flowed_support", true); + +8) 電子メールのサイズ + +パッチを Linus へ送るときは常に #7 の手順に従ってください。 + +大きなパッチはメーリングリストやメンテナにとって不親切です。パッチが +未圧縮で 40KB を超えるようであるなら、インターネット上のアクセス可能な +サーバに保存し、保存場所を示す URL を伝えるほうが適切です。 + +9) カーネルバージョンの明記 + +パッチが対象とするカーネルのバージョンをパッチの概要か電子メールの +サブジェクトに付けることが重要です。 + +パッチが最新バージョンのカーネルに正しく適用できなければ、Linus は +そのパッチを採用しないでしょう。 + +10) がっかりせず再投稿 + +パッチを投稿した後は、辛抱強く待っていてください。Linus があなたのパッ +チを気に入って採用すれば、Linus がリリースする次のバージョンのカーネル +の中で姿を見せるでしょう。 + +しかし、パッチが次のバージョンのカーネルに入っていないなら、いくつもの +理由があるのでしょう。その原因を絞り込み、間違っているものを正し、更新 +したパッチを投稿するのはあなたの仕事です。 + +Linus があなたのパッチに対して何のコメントもなく不採用にすることは極め +て普通のことです。それは自然な姿です。もし、Linus があなたのパッチを受 +け取っていないのであれば、以下の理由が考えられます。 +* パッチが最新バージョンの Linux カーネルにきちんと適用できなかった +* パッチが LKML で十分に議論されていなかった +* スタイルの問題(セクション2を参照) +* 電子メールフォーマットの問題(このセクションを参照) +* パッチに対する技術的な問題 +* Linus はたくさんの電子メールを受け取っているので、どさくさに紛れて見 + 失った +* 不愉快にさせている + +判断できない場合は、LKML にコメントを頼んでください。 + +11) サブジェクトに「 PATCH 」 + +Linus や LKML への大量の電子メールのために、サブジェクトのプレフィックスに +「 [PATCH] 」を付けることが慣習となっています。これによって Linus や他の +カーネル開発者がパッチであるのか、又は、他の議論に関する電子メールであるの +かをより簡単に識別できます。 + +12) パッチへの署名 + +誰が何をしたのかを追いかけやすくするために (特に、パッチが何人かの +メンテナを経て最終的に Linux カーネルに取り込まれる場合のために)、電子 +メールでやり取りされるパッチに対して「 sign-off 」という手続きを導入し +ました。 + +「 sign-off 」とは、パッチがあなたの書いたものであるか、あるいは、 +あなたがそのパッチをオープンソースとして提供する権利を保持している、 +という証明をパッチの説明の末尾に一行記載するというものです。 +ルールはとても単純です。以下の項目を確認して下さい。 + + 原作者の証明書( DCO ) 1.1 + + このプロジェクトに寄与するものとして、以下のことを証明する。 + + (a) 本寄与は私が全体又は一部作成したものであり、私がそのファイ + ル中に明示されたオープンソースライセンスの下で公開する権利 + を持っている。もしくは、 + + (b) 本寄与は、私が知る限り、適切なオープンソースライセンスでカバ + ーされている既存の作品を元にしている。同時に、私はそのライセ + ンスの下で、私が全体又は一部作成した修正物を、ファイル中で示 + される同一のオープンソースライセンスで(異なるライセンスの下で + 投稿することが許可されている場合を除いて)投稿する権利を持って + いる。もしくは、 + + (c) 本寄与は(a)、(b)、(c)を証明する第3者から私へ直接提供された + ものであり、私はそれに変更を加えていない。 + + (d) 私はこのプロジェクトと本寄与が公のものであることに理解及び同意す + る。同時に、関与した記録(投稿の際の全ての個人情報と sign-off を + 含む)が無期限に保全されることと、当該プロジェクト又は関連する + オープンソースライセンスに沿った形で再配布されることに理解及び + 同意する。 + +もしこれに同意できるなら、以下のような1行を追加してください。 + + Signed-off-by: Random J Developer + +実名を使ってください。(残念ですが、偽名や匿名による寄与はできません。) + +人によっては sign-off の近くに追加のタグを付加しています。それらは今のところ +無視されますが、あなたはそのタグを社内の手続きに利用したり、sign-off に特別 +な情報を示したりすることができます。 + +13) いつ Acked-by: を使うのか + +「 Signed-off-by: 」タグはその署名者がパッチの開発に関わっていたことやパッチ +の伝播パスにいたことを示しています。 + +ある人が直接パッチの準備や作成に関わっていないけれど、その人のパッチに対す +る承認を記録し、示したいとします。その場合、その人を示すのに Acked-by: が使 +えます。Acked-by: はパッチのチェンジログにも追加されます。 + +パッチの影響を受けるコードのメンテナがパッチに関わっていなかったり、パッチ +の伝播パスにいなかった時にも、メンテナは Acked-by: をしばしば利用します。 + +Acked-by: は Signed-off-by: のように公式なタグではありません。それはメンテナが +少なくともパッチをレビューし、同意を示しているという記録です。そのような +ことからパッチの統合者がメンテナの「うん、良いと思うよ」という発言を +Acked-by: へ置き換えることがあります。 + +Acked-by: が必ずしもパッチ全体の承認を示しているわけではありません。例えば、 +あるパッチが複数のサブシステムへ影響を与えており、その中の1つのサブシステム +のメンテナからの Acked-by: を持っているとします。その場合、Acked-by: は通常 +そのメンテナのコードに影響を与える一部分だけに対する承認を示しています。 +この点は、ご自分で判断してください。(その Acked-by: が)疑わしい場合は、 +メーリングリストアーカイブの中の大元の議論を参照すべきです。 + +14) 標準的なパッチのフォーマット + +標準的なパッチのサブジェクトは以下のとおりです。 + + Subject: [PATCH 001/123] subsystem: summary phrase + +標準的なパッチの、電子メールのボディは以下の項目を含んでいます。 + + - パッチの作成者を明記する「 from 」行 + + - 空行 + + - 説明本体。これはこのパッチを説明するために無期限のチェンジログ + (変更履歴)にコピーされます。 + + - 上述した「 Signed-off-by: 」行。これも説明本体と同じくチェン + ジログ内にコピーされます。 + + - マーカー行は単純に「 --- 」です。 + + - 余計なコメントは、チェンジログには不適切です。 + + - 実際のパッチ(差分出力) + +サブジェクト行のフォーマットは、アルファベット順で電子メールをとても +ソートしやすいものになっています。(ほとんどの電子メールクライアント +はソートをサポートしています)パッチのサブジェクトの連番は0詰めであ +るため、数字でのソートとアルファベットでのソートは同じ結果になります。 + +電子メールのサブジェクト内のサブシステム表記は、パッチが適用される +分野またはサブシステムを識別できるようにすべきです。 + +電子メールのサブジェクトの「概要の言い回し」はそのパッチの概要を正確 +に表現しなければなりません。「概要の言い回し」をファイル名にしてはい +けません。一連のパッチ中でそれぞれのパッチは同じ「概要の言い回し」を +使ってはいけません(「一連のパッチ」とは順序付けられた関連のある複数の +パッチ群です)。 + +あなたの電子メールの「概要の言い回し」がそのパッチにとって世界で唯 +一の識別子になるように心がけてください。「概要の言い回し」は git の +チェンジログの中へずっと伝播していきます。「概要の言い回し」は、開 +発者が後でパッチを参照するために議論の中で利用するかもしれません。 +人々はそのパッチに関連した議論を読むために「概要の言い回し」を使って +google で検索したがるでしょう。 + +サブジェクトの例を二つ + + Subject: [patch 2/5] ext2: improve scalability of bitmap searching + Subject: [PATCHv2 001/207] x86: fix eflags tracking + +「 from 」行は電子メールのボディの一番最初の行でなければなりません。 +その形式は以下のとおりです。 + + From: Original Author + +「 from 」行はチェンジログの中で、そのパッチの作成者としてクレジットされ +ている人を特定するものです。「 from 」行がかけていると、電子メールのヘッ +ダーの「 From: 」が、チェンジログの中でパッチの作成者を決定するために使わ +れるでしょう。 + +説明本体は無期限のソースのチェンジログにコミットされます。なので、説明 +本体はそのパッチに至った議論の詳細を忘れているある程度の技量を持っている人 +がその詳細を思い出すことができるものでなければなりません。 + +「 --- 」マーカー行はパッチ処理ツールに対して、チェンジログメッセージの終端 +部分を認識させるという重要な役目を果たします。 + +「 --- 」マーカー行の後の追加コメントの良い使用方法の1つに diffstat コマンド +があります。diffstat コマンドとは何のファイルが変更され、1ファイル当たり何行 +追加され何行消されたかを示すものです。diffstat コマンドは特に大きなパッチに +おいて役立ちます。その時点でだけ又はメンテナにとってのみ関係のあるコメント +は無期限に保存されるチェンジログにとって適切ではありません。そのため、この +ようなコメントもマーカー行の後に書かれるべきです。ファイル名はカーネルソー +スツリーのトップディレクトリからの表記でリストされるため、横方向のスペース +をとり過ぎないように、diffstat コマンドにオプション「 -p 1 -w 70 」を指定し +てください(インデントを含めてちょうど80列に合うでしょう)。 + +適切なパッチのフォーマットの詳細についてはセクション3の参考文献を参照して +ください。 + +------------------------------------ +セクション2 - ヒントとTIPSと小技 +------------------------------------ + +このセクションは Linux カーネルに変更を適用することに関係のある一般的な +「お約束」の多くを載せています。物事には例外というものがあります。しか +し例外を適用するには、本当に妥当な理由が不可欠です。あなたは恐らくこの +セクションを Linus のコンピュータ・サイエンス101と呼ぶでしょう。 + +1) Documentation/CodingStyleを参照 + +言うまでもなく、あなたのコードがこのコーディングスタイルからあまりに +も逸脱していると、レビューやコメントなしに受け取ってもらえないかもし +れません。 + +唯一の特筆すべき例外は、コードをあるファイルから別のファイルに移動 +するときです。この場合、コードを移動するパッチでは、移動されるコード +に関して移動以外の変更を一切加えるべきではありません。これにより、 +コードの移動とあなたが行ったコードの修正を明確に区別できるようにな +ります。これは実際に何が変更されたかをレビューする際の大きな助けに +なるとともに、ツールにコードの履歴を追跡させることも容易になります。 + +投稿するより前にパッチのスタイルチェッカー( scripts/checkpatch.pl )で +あなたのパッチをチェックしてください。このスタイルチェッカーは最終結 +論としてではなく、指標としてみるべきです。もし、あなたのコードが違反 +はしているが修正するより良く見えるのであれば、おそらくそのままにする +のがベストです。 + +スタイルチェッカーによる3段階のレポート: + - エラー: 間違っている可能性が高い + - 警告:注意してレビューする必要がある + - チェック:考慮する必要がある + +あなたはパッチに残っている全ての違反について、それがなぜ必要なのか正当な +理由を示せるようにしておく必要があります。 + +2) #ifdefは見苦しい + +ifdef が散乱したコードは、読むのもメンテナンスするのも面倒です。コードの中 +で ifdef を使わないでください。代わりに、ヘッダファイルの中に ifdef を入れて、 +条件付きで、コードの中で使われる関数を「 static inline 」関数かマクロで定義し +てください。後はコンパイラが、何もしない箇所を最適化して取り去ってくれるで +しょう。 + +まずいコードの簡単な例 + + dev = alloc_etherdev (sizeof(struct funky_private)); + if (!dev) + return -ENODEV; + #ifdef CONFIG_NET_FUNKINESS + init_funky_net(dev); + #endif + +クリーンアップしたコードの例 + +(in header) + #ifndef CONFIG_NET_FUNKINESS + static inline void init_funky_net (struct net_device *d) {} + #endif + +(in the code itself) + dev = alloc_etherdev (sizeof(struct funky_private)); + if (!dev) + return -ENODEV; + init_funky_net(dev); + +3) マクロより「 static inline 」を推奨 + +「 static inline 」関数はマクロよりもずっと推奨されています。それらは、 +型安全性があり、長さにも制限が無く、フォーマットの制限もありません。 +gcc においては、マクロと同じくらい軽いです。 + +マクロは「 static inline 」が明らかに不適切であると分かる場所(高速化パスの +いくつかの特定のケース)や「 static inline 」関数を使うことができないような +場所(マクロの引数の文字列連結のような)にだけ使われるべきです。 + +「 static inline 」は「 static __inline__ 」や「 extern inline 」や +「 extern __inline__ 」よりも適切です。 + +4) 設計に凝りすぎるな + +それが有用になるかどうか分からないような不明瞭な将来を見越した設計 +をしないでください。「できる限り簡単に、そして、それ以上簡単になら +ないような設計をしてください。」 + +---------------------- +セクション3 参考文献 +---------------------- + +Andrew Morton, "The perfect patch" (tpp). + + +Jeff Garzik, "Linux kernel patch submission format". + + +Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". + + + + + +NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! + + +Kernel Documentation/CodingStyle: + + +Linus Torvalds's mail on the canonical patch format: + +-- diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index 8ae5fac08dfa..c4178778e7fd 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -527,29 +527,30 @@ and is between 256 and 4096 characters. It is defined in the file Format: [,] See also Documentation/networking/decnet.txt. - default_blu= [VT] + vt.default_blu= [VT] Format: ,,,..., Change the default blue palette of the console. This is a 16-member array composed of values ranging from 0-255. - default_grn= [VT] + vt.default_grn= [VT] Format: ,,,..., Change the default green palette of the console. This is a 16-member array composed of values ranging from 0-255. - default_red= [VT] + vt.default_red= [VT] Format: ,,,..., Change the default red palette of the console. This is a 16-member array composed of values ranging from 0-255. - default_utf8= [VT] + vt.default_utf8= + [VT] Format=<0|1> Set system-wide default UTF-8 mode for all tty's. - Default is 0 and by setting to 1, it enables UTF-8 - mode for all newly opened or allocated terminals. + Default is 1, i.e. UTF-8 mode is enabled for all + newly opened terminals. dhash_entries= [KNL] Set number of hash buckets for dentry cache. @@ -586,11 +587,6 @@ and is between 256 and 4096 characters. It is defined in the file eata= [HW,SCSI] - ec_intr= [HW,ACPI] ACPI Embedded Controller interrupt mode - Format: - 0: polling mode - non-0: interrupt mode (default) - edd= [EDD] Format: {"of[f]" | "sk[ipmbr]"} See comment in arch/i386/boot/edd.S @@ -887,6 +883,14 @@ and is between 256 and 4096 characters. It is defined in the file lapic_timer_c2_ok [X86-32,x86-64,APIC] trust the local apic timer in C2 power state. + libata.dma= [LIBATA] DMA control + libata.dma=0 Disable all PATA and SATA DMA + libata.dma=1 PATA and SATA Disk DMA only + libata.dma=2 ATAPI (CDROM) DMA only + libata.dma=4 Compact Flash DMA only + Combinations also work, so libata.dma=3 enables DMA + for disks and CDROMs, but not CFs. + libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume when set. Format: diff --git a/trunk/Documentation/ko_KR/HOWTO b/trunk/Documentation/ko_KR/HOWTO index b51d7ca842ba..029fca914c05 100644 --- a/trunk/Documentation/ko_KR/HOWTO +++ b/trunk/Documentation/ko_KR/HOWTO @@ -1,6 +1,6 @@ NOTE: This is a version of Documentation/HOWTO translated into korean -This document is maintained by minchan Kim < minchan.kim@gmail.com> +This document is maintained by minchan Kim If you find any difference between this document and the original file or a problem with the translation, please contact the maintainer of this file. @@ -14,7 +14,7 @@ try to update the original English file first. Documentation/HOWTO 의 한글 번역입니다. -역자: 김민찬 +역자: 김민찬 감수: 이제이미 ================================== @@ -23,11 +23,11 @@ Documentation/HOWTO 이 문서는 커널 개발에 있어 가장 중요한 문서이다. 이 문서는 리눅스 커널 개발자가 되는 법과 리눅스 커널 개발 커뮤니티와 일하는 -법을 담고있다. 커널 프로그래밍의기술적인 측면과 관련된 내용들은 -포함하지 않으려고 하였지만 올바으로 여러분을 안내하는 데 도움이 +법을 담고있다. 커널 프로그래밍의 기술적인 측면과 관련된 내용들은 +포함하지 않으려고 하였지만 올바른 길로 여러분을 안내하는 데는 도움이 될 것이다. -이 문서에서 오래된 것을 발견하면 문서의 아래쪽에 나열된 메인트너에게 +이 문서에서 오래된 것을 발견하면 문서의 아래쪽에 나열된 메인테이너에게 패치를 보내달라. @@ -36,12 +36,12 @@ Documentation/HOWTO 자, 여러분은 리눅스 커널 개발자가 되는 법을 배우고 싶은가? 아니면 상사로부터"이 장치를 위한 리눅스 드라이버를 작성하시오"라는 말을 -들었는가? 이 문서는 여러분이 겪게 될 과정과 커뮤니티와 일하는 법을 -조언하여 여러분의 목적을 달성하기 위해 필요한 것 모두를 알려주는 -것이다. +들었는가? 이 문서의 목적은 여러분이 겪게 될 과정과 커뮤니티와 협력하는 +법을 조언하여 여러분의 목적을 달성하기 위해 필요한 것 모두를 알려주기 +위함이다. -커널은 대부분은 C로 작성되었어고 몇몇 아키텍쳐의 의존적인 부분은 -어셈블리로 작성되었다. 커널 개발을 위해 C를 잘 이해하고 있어야 한다. +커널은 대부분은 C로 작성되어 있고 몇몇 아키텍쳐의 의존적인 부분은 +어셈블리로 작성되어 있다. 커널 개발을 위해 C를 잘 이해하고 있어야 한다. 여러분이 특정 아키텍쳐의 low-level 개발을 할 것이 아니라면 어셈블리(특정 아키텍쳐)는 잘 알아야 할 필요는 없다. 다음의 참고서적들은 기본에 충실한 C 교육이나 수년간의 경험에 견주지는 @@ -59,11 +59,11 @@ Documentation/HOWTO 어떤 참고문서도 있지 않다. 정보를 얻기 위해서는 gcc info (`info gcc`)페이지를 살펴보라. -여러분은 기존의 개발 커뮤니티와 일하는 법을 배우려고 하고 있다는 것을 -기억하라. 코딩, 스타일, 절차에 관한 훌륭한 표준을 가진 사람들이 모인 +여러분은 기존의 개발 커뮤니티와 협력하는 법을 배우려고 하고 있다는 것을 +기억하라. 코딩, 스타일, 함수에 관한 훌륭한 표준을 가진 사람들이 모인 다양한 그룹이 있다. 이 표준들은 오랜동안 크고 지역적으로 분산된 팀들에 -의해 가장 좋은 방법으로 일하기위하여 찾은 것을 기초로 만들어져왔다. -그 표준들은 문서화가 잘 되어 있기 때문에 가능한한 미리 많은 표준들에 +의해 가장 좋은 방법으로 일하기 위하여 찾은 것을 기초로 만들어져 왔다. +그 표준들은 문서화가 잘 되어있기 때문에 가능한한 미리 많은 표준들에 관하여 배우려고 시도하라. 다른 사람들은 여러분이나 여러분의 회사가 일하는 방식에 적응하는 것을 원하지는 않는다. @@ -73,7 +73,7 @@ Documentation/HOWTO 리눅스 커널 소스 코드는 GPL로 배포(release)되었다. 소스트리의 메인 디렉토리에 있는 라이센스에 관하여 상세하게 쓰여 있는 COPYING이라는 -파일을 봐라.여러분이 라이센스에 관한 더 깊은 문제를 가지고 있다면 +파일을 봐라. 여러분이 라이센스에 관한 더 깊은 문제를 가지고 있다면 리눅스 커널 메일링 리스트에 묻지말고 변호사와 연락하라. 메일링 리스트들에 있는 사람들은 변호사가 아니기 때문에 법적 문제에 관하여 그들의 말에 의지해서는 안된다. @@ -85,12 +85,12 @@ GPL에 관한 잦은 질문들과 답변들은 다음을 참조하라. 문서 ---- -리눅스 커널 소스 트리는 커널 커뮤니티와 일하는 법을 배우기 위한 많은 -귀중한 문서들을 가지고 있다. 새로운 기능들이 커널에 들어가게 될 때, +리눅스 커널 소스 트리는 커널 커뮤니티와 협력하는 법을 배우기위해 훌륭한 +다양한 문서들을 가지고 있다. 새로운 기능들이 커널에 들어가게 될 때, 그 기능을 어떻게 사용하는지에 관한 설명을 위하여 새로운 문서 파일을 추가하는 것을 권장한다. 커널이 유저스페이스로 노출하는 인터페이스를 변경하게 되면 변경을 설명하는 메뉴얼 페이지들에 대한 패치나 정보를 -mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. +mtk.manpages@gmail.com의 메인테이너에게 보낼 것을 권장한다. 다음은 커널 소스 트리에 있는 읽어야 할 파일들의 리스트이다. README @@ -105,7 +105,7 @@ mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. Documentation/CodingStyle 이 문서는 리눅스 커널 코딩 스타일과 그렇게 한 몇몇 이유를 설명한다. 모든 새로운 코드는 이 문서에 가이드라인들을 따라야 한다. 대부분의 - 메인트너들은 이 규칙을 따르는 패치들만을 받아들일 것이고 많은 사람들이 + 메인테이너들은 이 규칙을 따르는 패치들만을 받아들일 것이고 많은 사람들이 그 패치가 올바른 스타일일 경우만 코드를 검토할 것이다. Documentation/SubmittingPatches @@ -115,9 +115,10 @@ mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. - Email 내용들 - Email 양식 - 그것을 누구에게 보낼지 - 이러한 규칙들을 따르는 것이 성공을 보장하진 않는다(왜냐하면 모든 - 패치들은 내용과 스타일에 관하여 면밀히 검토되기 때문이다). - 그러나 규칙을 따르지 않는다면 거의 성공하지도 못할 것이다. + 이러한 규칙들을 따르는 것이 성공(역자주: 패치가 받아들여 지는 것)을 + 보장하진 않는다(왜냐하면 모든 패치들은 내용과 스타일에 관하여 + 면밀히 검토되기 때문이다). 그러나 규칙을 따르지 않는다면 거의 + 성공하지도 못할 것이다. 올바른 패치들을 만드는 법에 관한 훌륭한 다른 문서들이 있다. "The Perfect Patch" @@ -126,13 +127,13 @@ mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. http://linux.yyz.us/patch-format.html Documentation/stable_api_nonsense.txt - 이 문서는 의도적으로 커널이 변하지 않는 API를 갖지 않도록 결정한 + 이 문서는 의도적으로 커널이 불변하는 API를 갖지 않도록 결정한 이유를 설명하며 다음과 같은 것들을 포함한다. - 서브시스템 shim-layer(호환성을 위해?) - - 운영 체제들 간의 드라이버 이식성 + - 운영체제들간의 드라이버 이식성 - 커널 소스 트리내에 빠른 변화를 늦추는 것(또는 빠른 변화를 막는 것) 이 문서는 리눅스 개발 철학을 이해하는데 필수적이며 다른 운영체제에서 - 리눅스로 옮겨오는 사람들에게는 매우 중요하다. + 리눅스로 전향하는 사람들에게는 매우 중요하다. Documentation/SecurityBugs @@ -141,10 +142,10 @@ mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. 도와 달라. Documentation/ManagementStyle - 이 문서는 리눅스 커널 메인트너들이 어떻게 그들의 방법론의 정신을 - 어떻게 공유하고 운영하는지를 설명한다. 이것은 커널 개발에 입문하는 + 이 문서는 리눅스 커널 메인테이너들이 그들의 방법론에 녹아 있는 + 정신을 어떻게 공유하고 운영하는지를 설명한다. 이것은 커널 개발에 입문하는 모든 사람들(또는 커널 개발에 작은 호기심이라도 있는 사람들)이 - 읽어야 할 중요한 문서이다. 왜냐하면 이 문서는 커널 메인트너들의 + 읽어야 할 중요한 문서이다. 왜냐하면 이 문서는 커널 메인테이너들의 독특한 행동에 관하여 흔히 있는 오해들과 혼란들을 해소하고 있기 때문이다. @@ -160,7 +161,7 @@ mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. Documentation/applying-patches.txt 패치가 무엇이며 그것을 커널의 다른 개발 브랜치들에 어떻게 - 적용하는지에 관하여 자세히 설명 하고 있는 좋은 입문서이다. + 적용하는지에 관하여 자세히 설명하고 있는 좋은 입문서이다. 커널은 소스 코드 그 자체에서 자동적으로 만들어질 수 있는 많은 문서들을 가지고 있다. 이것은 커널 내의 API에 대한 모든 설명, 그리고 락킹을 @@ -192,7 +193,7 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H 여러분이 어디서 시작해야 할진 모르지만 커널 개발 커뮤니티에 참여할 수 있는 일들을 찾길 원한다면 리눅스 커널 Janitor 프로젝트를 살펴봐라. http://janitor.kernelnewbies.org/ -그곳은 시작하기에 아주 딱 좋은 곳이다. 그곳은 리눅스 커널 소스 트리내에 +그곳은 시작하기에 훌륭한 장소이다. 그곳은 리눅스 커널 소스 트리내에 간단히 정리되고 수정될 수 있는 문제들에 관하여 설명한다. 여러분은 이 프로젝트를 대표하는 개발자들과 일하면서 자신의 패치를 리눅스 커널 트리에 반영하기 위한 기본적인 것들을 배우게 될것이며 여러분이 아직 아이디어를 @@ -212,7 +213,7 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H 것은 Linux Cross-Reference project이며 그것은 자기 참조 방식이며 소스코드를 인덱스된 웹 페이지들의 형태로 보여준다. 최신의 멋진 커널 코드 저장소는 다음을 통하여 참조할 수 있다. - http://sosdg.org/~coywolf/lxr/ + http://users.sosdg.org/~qiyong/lxr/ 개발 프로세스 @@ -233,44 +234,45 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H 2.6.x 커널들은 Linux Torvalds가 관리하며 kernel.org의 pub/linux/kernel/v2.6/ 디렉토리에서 참조될 수 있다.개발 프로세스는 다음과 같다. - 새로운 커널이 배포되자마자 2주의 시간이 주어진다. 이 기간동은 - 메인트너들은 큰 diff들을 Linus에게 제출할 수 있다. 대개 이 패치들은 + 메인테이너들은 큰 diff들을 Linus에게 제출할 수 있다. 대개 이 패치들은 몇 주 동안 -mm 커널내에 이미 있었던 것들이다. 큰 변경들을 제출하는 데 선호되는 방법은 git(커널의 소스 관리 툴, 더 많은 정보들은 http://git.or.cz/ - 에서 참조할 수 있다)를 사용하는 것이지만 순수한 패치파일의 형식으로 보내도 + 에서 참조할 수 있다)를 사용하는 것이지만 순수한 패치파일의 형식으로 보내는 것도 무관하다. - 2주 후에 -rc1 커널이 배포되며 지금부터는 전체 커널의 안정성에 영향을 - 미칠수 있는 새로운 기능들을 포함하지 않는 패치들만을 추가될 수 있다. + 미칠수 있는 새로운 기능들을 포함하지 않는 패치들만이 추가될 수 있다. 완전히 새로운 드라이버(혹은 파일시스템)는 -rc1 이후에만 받아들여진다는 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은 - 퇴보(regression)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 + 회귀(역자주: 이전에는 존재하지 않았지만 새로운 기능추가나 변경으로 인해 + 생겨난 버그)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다. - - 새로운 -rc는 Linus는 현재 git tree가 테스트 하기에 충분히 안정된 상태에 + - 새로운 -rc는 Linus가 현재 git tree가 테스트 하기에 충분히 안정된 상태에 있다고 판단될 때마다 배포된다. 목표는 새로운 -rc 커널을 매주 배포하는 것이다. - - 이러한 프로세스는 커널이 "준비"되었다고 여겨질때까지 계속된다. + - 이러한 프로세스는 커널이 "준비(ready)"되었다고 여겨질때까지 계속된다. 프로세스는 대체로 6주간 지속된다. - - 각 -rc 배포에 있는 알려진 퇴보의 목록들은 다음 URI에 남겨진다. + - 각 -rc 배포에 있는 알려진 회귀의 목록들은 다음 URI에 남겨진다. http://kernelnewbies.org/known_regressions 커널 배포에 있어서 언급할만한 가치가 있는 리눅스 커널 메일링 리스트의 Andrew Morton의 글이 있다. - "커널이 언제 배포될지는 아무로 모른다. 왜냐하면 배포는 알려진 + "커널이 언제 배포될지는 아무도 모른다. 왜냐하면 배포는 알려진 버그의 상황에 따라 배포되는 것이지 미리정해 놓은 시간에 따라 - 배포되는 것은 아니기 때문이다." + 배포되는 것은 아니기 때문이다." 2.6.x.y - 안정 커널 트리 ------------------------ 4 자리 숫자로 이루어진 버젼의 커널들은 -stable 커널들이다. 그것들은 2.6.x -커널에서 발견된 큰 퇴보들이나 보안 문제들 중 비교적 작고 중요한 수정들을 +커널에서 발견된 큰 회귀들이나 보안 문제들 중 비교적 작고 중요한 수정들을 포함한다. 이것은 가장 최근의 안정적인 커널을 원하는 사용자에게 추천되는 브랜치이며, -개발/실험적 버젼을 테스트하는 것을 돕는데는 별로 관심이 없다. +개발/실험적 버젼을 테스트하는 것을 돕고자 하는 사용자들과는 별로 관련이 없다. -어떤 2.6.x.y 커널도 사용가능하지 않다면 그때는 가장 높은 숫자의 2.6.x +어떤 2.6.x.y 커널도 사용할 수 없다면 그때는 가장 높은 숫자의 2.6.x 커널이 현재의 안정 커널이다. 2.6.x.y는 "stable" 팀에 의해 관리되며 거의 매번 격주로 @@ -294,7 +296,7 @@ Andrew Morton에 의해 배포된 실험적인 커널 패치들이다. Andrew는 서브시스템 커널 트리와 패치들을 가져와서 리눅스 커널 메일링 리스트로 온 많은 패치들과 한데 묶는다. 이 트리는 새로운 기능들과 패치들을 위한 장소를 제공하는 역할을 한다. 하나의 패치가 -mm에 한동안 있으면서 그 가치가 -증명되게 되면 Andrew나 서브시스템 메인트너는 그것을 메인라인에 포함시키기 +증명되게 되면 Andrew나 서브시스템 메인테이너는 그것을 메인라인에 포함시키기 위하여 Linus에게 보낸다. 커널 트리에 포함하고 싶은 모든 새로운 패치들은 Linus에게 보내지기 전에 @@ -327,7 +329,7 @@ Andrew Morton에 의해 배포된 실험적인 커널 패치들이다. Andrew는 - ACPI development tree, Len Brown git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git - - Block development tree, Jens Axboe + - Block development tree, Jens Axboe git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git - DRM development tree, Dave Airlie @@ -367,8 +369,8 @@ bugzilla.kernel.org는 리눅스 커널 개발자들이 커널의 버그를 추 kernel bugzilla를 사용하는 자세한 방법은 다음을 참조하라. http://test.kernel.org/bugzilla/faq.html -메인 커널 소스 디렉토리에 있는 REPORTING-BUGS 파일은 커널 버그일 것 같은 -것을 보고하는는 법에 관한 좋은 템플릿이고 문제를 추적하기 위해서 커널 +메인 커널 소스 디렉토리에 있는 REPORTING-BUGS 파일은 커널 버그라고 생각되는 +것을 보고하는 방법에 관한 좋은 템플릿이며 문제를 추적하기 위해서 커널 개발자들이 필요로 하는 정보가 무엇들인지를 상세히 설명하고 있다. @@ -383,7 +385,7 @@ kernel bugzilla를 사용하는 자세한 방법은 다음을 참조하라. 점수를 얻을 수 있는 가장 좋은 방법중의 하나이다. 왜냐하면 많은 사람들은 다른 사람들의 버그들을 수정하기 위하여 시간을 낭비하지 않기 때문이다. -이미 보고된 버그 리포트들을 가지고 작업하기 위해서 http://bugzilla.kernelorg를 +이미 보고된 버그 리포트들을 가지고 작업하기 위해서 http://bugzilla.kernel.org를 참조하라. 여러분이 앞으로 생겨날 버그 리포트들의 조언자가 되길 원한다면 bugme-new 메일링 리스트나(새로운 버그 리포트들만이 이곳에서 메일로 전해진다) bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다) @@ -404,8 +406,8 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 웹상의 많은 다른 곳에도 메일링 리스트의 아카이브들이 있다. 이러한 아카이브들을 찾으려면 검색 엔진을 사용하라. 예를 들어: http://dir.gmane.org/gmane.linux.kernel -여러분이 새로운 문제에 관해 리스트에 올리기 전에 말하고 싶은 주제에 대한 -것을 아카이브에서 먼저 찾기를 강력히 권장한다. 이미 상세하게 토론된 많은 +여러분이 새로운 문제에 관해 리스트에 올리기 전에 말하고 싶은 주제에 관한 +것을 아카이브에서 먼저 찾아보기를 강력히 권장한다. 이미 상세하게 토론된 많은 것들이 메일링 리스트의 아카이브에 기록되어 있다. 각각의 커널 서브시스템들의 대부분은 자신들의 개발에 관한 노력들로 이루어진 @@ -443,7 +445,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 무엇보다도 메일링 리스트의 다른 구독자들에게 보여주려 한다는 것을 기억하라. -커뮤니티와 일하는 법 +커뮤니티와 협력하는 법 -------------------- 커널 커뮤니티의 목적은 가능한한 가장 좋은 커널을 제공하는 것이다. 여러분이 @@ -474,7 +476,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을 기억하라. -여러분의 첫 패치에 여러분이 수정해야하는 십여개 정도의 회신이 오는 +여러분의 첫 패치에 여러분이 수정해야하는 십여개 정도의 회신이 오는 경우도 흔하다. 이것은 여러분의 패치가 받아들여지지 않을 것이라는 것을 의미하는 것이 아니고 개인적으로 여러분에게 감정이 있어서 그러는 것도 아니다. 간단히 여러분의 패치에 제기된 문제들을 수정하고 그것을 다시 @@ -486,12 +488,12 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의 문제를 피하기 위한 목록이 있다. 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 : - - " 이것은 여러 문제들을 해겹합니다." + - "이것은 여러 문제들을 해겹합니다." - "이것은 2000 라인의 코드를 제거합니다." - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다." - "나는 5개의 다른 아키텍쳐에서 그것을 테스트했슴으로..." - - "여기에 일련의 작은 패치들이 있습음로..." - - "이것은 일반적인 머신에서 성능을 향상시키므로..." + - "여기에 일련의 작은 패치들이 있슴음로..." + - "이것은 일반적인 머신에서 성능을 향상시킴으로..." 여러분들이 말할 때 피해야 할 좋지 않은 것들 : - "우리를 그것을 AIT/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀립없다..." @@ -500,7 +502,7 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다." - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다." - "나는 6달동안 이것을 했으니..." - - "여기세 5000라인 짜리 패치가 있으니..." + - "여기에 5000라인 짜리 패치가 있으니..." - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..." - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다." @@ -510,13 +512,13 @@ bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메 없다는 것이다. 리눅스 커널의 작업 환경에서는 단지 이메일 주소만 알수 있기 때문에 여성과 소수 민족들도 모두 받아들여진다. 국제적으로 일하게 되는 측면은 사람의 이름에 근거하여 성별을 추측할 수 없게 -하기때문에 차별을 없애는 데 도움을 준다. Andrea라는 이름을 가진 남자와 +하기때문에 차별을 없애는 데 도움을 준다. Andrea라는 이름을 가진 남자와 Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅스 커널에서 작업하며 생각을 표현해왔던 대부분의 여성들은 긍정적인 경험을 가지고 있다. 언어 장벽은 영어에 익숙하지 않은 몇몇 사람들에게 문제가 될 수도 있다. - 언어의 훌륭한 구사는 메일링 리스트에서 올바르게 자신의 생각을 +언어의 훌륭한 구사는 메일링 리스트에서 올바르게 자신의 생각을 표현하기 위하여 필요하다. 그래서 여러분은 이메일을 보내기 전에 영어를 올바르게 사용하고 있는지를 체크하는 것이 바람직하다. @@ -524,13 +526,13 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 여러분의 변경을 나누어라 ------------------------ -리눅스 커널 커뮤니티는 한꺼번에 굉장히 큰 코드의 묶음을 쉽게 +리눅스 커널 커뮤니티는 한꺼번에 굉장히 큰 코드의 묶음(chunk)을 쉽게 받아들이지 않는다. 변경은 적절하게 소개되고, 검토되고, 각각의 부분으로 작게 나누어져야 한다. 이것은 회사에서 하는 것과는 정확히 반대되는 것이다. 여러분들의 제안은 개발 초기에 일찍이 소개되야 한다. 그래서 여러분들은 자신이 하고 있는 것에 관하여 피드백을 받을 수 있게 된다. 커뮤니티가 여러분들이 커뮤니티와 함께 일하고 있다는 것을 -느끼도록 만들고 커뮤니티가 여러분의 기능을 위한 쓰레기 장으로서 +느끼도록 만들고 커뮤니티가 여러분의 기능을 위한 쓰레기 장으로써 사용되지 않고 있다는 것을 느끼게 하자. 그러나 메일링 리스트에 한번에 50개의 이메일을 보내지는 말아라. 여러분들의 일련의 패치들은 항상 더 작아야 한다. @@ -539,7 +541,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 1) 작은 패치들은 여러분의 패치들이 적용될 수 있는 확률을 높여준다. 왜냐하면 다른 사람들은 정확성을 검증하기 위하여 많은 시간과 노력을 - 들이기를 원하지 않는다. 5줄의 패치는 메인트너가 거의 몇 초간 힐끗 + 들이기를 원하지 않는다. 5줄의 패치는 메인테이너가 거의 몇 초간 힐끗 보면 적용될 수 있다. 그러나 500 줄의 패치는 정확성을 검토하기 위하여 몇시간이 걸릴 수도 있다(걸리는 시간은 패치의 크기 혹은 다른 것에 비례하여 기하급수적으로 늘어난다). @@ -558,18 +560,18 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 간결하고 가장 뛰어난 답을 보길 원한다. 훌륭한 학생은 이것을 알고 마지막으로 답을 얻기 전 중간 과정들을 제출하진 않는다. - 커널 개발도 마찬가지이다. 메인트너들과 검토하는 사람들은 문제를 + 커널 개발도 마찬가지이다. 메인테이너들과 검토하는 사람들은 문제를 풀어나가는 과정속에 숨겨진 과정을 보길 원하진 않는다. 그들은 간결하고 멋진 답을 보길 원한다." -커뮤니티와 함께 일하며 뛰어난 답을 찾고 여러분들의 완성되지 않은 일들 -사이에 균형을 유지해야 하는 어려움이 있을 수 있다. 그러므로 프로세스의 -초반에 여러분의 일을 향상시키기위한 피드백을 얻는 것 뿐만 아니라 +커뮤니티와 협력하며 뛰어난 답을 찾는 것과 여러분들의 끝마치지 못한 작업들 +사이에 균형을 유지해야 하는 것은 어려울지도 모른다. 그러므로 프로세스의 +초반에 여러분의 작업을 향상시키기위한 피드백을 얻는 것 뿐만 아니라 여러분들의 변경들을 작은 묶음으로 유지해서 심지어는 여러분의 작업의 -모든 부분이 지금은 포함될 준비가 되어있지 않지만 작은 부분은 이미 +모든 부분이 지금은 포함될 준비가 되어있지 않지만 작은 부분은 벌써 받아들여질 수 있도록 유지하는 것이 바람직하다. -또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들은 포함하는 +또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들을 포함하는 패치들은 받아들여지지 않을 것이라는 점을 유념하라. 변경을 정당화해라 @@ -577,7 +579,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 여러분들의 나누어진 패치들을 리눅스 커뮤니티가 왜 반영해야 하는지를 알도록 하는 것은 매우 중요하다. 새로운 기능들이 필요하고 유용하다는 -것은 반드시 그에 맞는 이유가 있어야 한다. +것은 반드시 그에 합당한 이유가 있어야 한다. 변경을 문서화해라 @@ -588,7 +590,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 것이다. 그리고 항상 그 내용을 보길 원하는 모든 사람들을 위해 보존될 것이다. 패치는 완벽하게 다음과 같은 내용들을 포함하여 설명해야 한다. - 변경이 왜 필요한지 - - 패치에 관한 전체 설계 어프로치 + - 패치에 관한 전체 설계 접근(approach) - 구현 상세들 - 테스트 결과들 @@ -600,7 +602,7 @@ Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅 이 모든 것을 하는 것은 매우 어려운 일이다. 완벽히 소화하는 데는 적어도 몇년이 -걸릴 수도 있다. 많은 인내와 결의가 필요한 계속되는 개선의 과정이다. 그러나 +걸릴 수도 있다. 많은 인내와 결심이 필요한 계속되는 개선의 과정이다. 그러나 가능한한 포기하지 말라. 많은 사람들은 이전부터 해왔던 것이고 그 사람들도 정확하게 여러분들이 지금 서 있는 그 곳부터 시작했었다. @@ -620,4 +622,4 @@ David A. Wheeler, Junio Hamano, Michael Kerrisk, and Alex Shepard에게도 감 -메인트너: Greg Kroah-Hartman +메인테이너: Greg Kroah-Hartman diff --git a/trunk/Documentation/ko_KR/stable_api_nonsense.txt b/trunk/Documentation/ko_KR/stable_api_nonsense.txt new file mode 100644 index 000000000000..8f2b0e1d98c4 --- /dev/null +++ b/trunk/Documentation/ko_KR/stable_api_nonsense.txt @@ -0,0 +1,195 @@ +NOTE: +This is a version of Documentation/stable_api_nonsense.txt translated +into korean +This document is maintained by barrios +If you find any difference between this document and the original file or +a problem with the translation, please contact the maintainer of this file. + +Please also note that the purpose of this file is to be easier to +read for non English (read: korean) speakers and is not intended as +a fork. So if you have any comments or updates for this file please +try to update the original English file first. + +================================== +이 문서는 +Documentation/stable_api_nonsense.txt +의 한글 번역입니다. + +역자: 김민찬 +감수: 이제이미 +================================== + +리눅스 커널 드라이버 인터페이스 +(여러분들의 모든 질문에 대한 답 그리고 다른 몇가지) + +Greg Kroah-Hartman + +이 문서는 리눅스가 왜 바이너리 커널 인터페이스를 갖지 않는지, 왜 변하지 +않는(stable) 커널 인터페이스를 갖지 않는지를 설명하기 위해 쓰여졌다. +이 문서는 커널과 유저공간 사이의 인터페이스가 아니라 커널 내부의 +인터페이스들을 설명하고 있다는 것을 유념하라. 커널과 유저공간 사이의 +인터페이스는 응용프로그램이 사용하는 syscall 인터페이스이다. 그 인터페이스는 +오랫동안 거의 변하지 않았고 앞으로도 변하지 않을 것이다. 나는 pre 0.9에서 +만들어졌지만 최신의 2.6 커널 배포에서도 잘 동작하는 프로그램을 가지고 +있다. 이 인터페이스는 사용자와 응용프로그램 개발자들이 변하지 않을 것이라고 +여길수 있는 것이다. + + +초록 +---- +여러분은 변하지 않는 커널 인터페이스를 원한다고 생각하지만 실제로는 +그렇지 않으며 심지어는 그것을 알아채지 못한다. 여러분이 원하는 것은 +안정되게 실행되는 드라이버이며 드라이버가 메인 커널 트리에 있을 때 +그런 안정적인 드라이버를 얻을 수 있게 된다. 또한 여러분의 드라이버가 +메인 커널 트리에 있다면 다른 많은 좋은 이점들을 얻게 된다. 그러한 것들이 +리눅스를 강건하고, 안정적이며, 성숙한 운영체제로 만들어 놓음으로써 +여러분들로 하여금 바로 리눅스를 사용하게 만드는 이유이다. + + +소개 +---- + +커널 내부의 인터페이스가 바뀌는 것을 걱정하며 커널 드라이버를 작성하고 +싶어하는 사람은 정말 이상한 사람이다. 세상의 대다수의 사람들은 이 인터페이스를 +보지못할 것이며 전혀 걱정하지도 않는다. + +먼저, 나는 closed 소스, hidden 소스, binary blobs, 소스 wrappers, 또는 GPL로 +배포되었지만 소스 코드를 갖고 있지 않은 커널 드라이버들을 설명하는 어떤 다른 +용어들에 관한 어떤 법적인 문제에 관해서는 언급하지 않을 것이다. 어떤 법적인 +질문들을 가지고 있다면 변호사와 연락하라. 나는 프로그래머이므로 여기서 기술적인 +문제들만을 설명하려고 한다. (법적인 문제를 경시하는 것은 아니다. 그런 문제들은 +엄연히 현실에 있고 여러분들은 항상 그 문제들을 인식하고 있을 필요는 있다.) + +자, 두가지의 주요 주제가 있다. 바이너리 커널 인터페이스들과 변하지 않는 +커널 소스 인터페이들. 그것들은 서로 의존성을 가지고 있지만 바이너리 +문제를 먼저 풀고 넘어갈 것이다. + + + +바이너리 커널 인터페이스 +------------------------ +우리가 변하지 않는 커널 소스 인터페이스를 가지고 있다고 가정하자. 그러면 +바이너리 인터페이스 또한 자연적으로 변하지 않을까? 틀렸다. 리눅스 커널에 +관한 다음 사실들을 생각해보라. + - 여러분들이 사용하는 C 컴파일러의 버젼에 따라 다른 커널 자료 구조들은 + 다른 alignmnet들을 갖게 될것이고 다른 방법으로(함수들을 inline으로 + 했느냐, 아니냐) 다른 함수들을 포함하는 것도 가능한다. 중요한 것은 + 개별적인 함수 구성이 아니라 자료 구조 패딩이 달라진다는 점이다. + - 여러분이 선택한 커널 빌드 옵션에 따라서 커널은 다양한 것들을 가정할 + 수 있다. + - 다른 구조체들은 다른 필드들을 포함할 수 있다. + - 몇몇 함수들은 전혀 구현되지 않을 수도 있다(즉, 몇몇 lock들은 + non-SMP 빌드에서는 사라져 버릴수도 있다). + - 커널내에 메모리는 build optoin들에 따라 다른 방법으로 align될수 + 있다. + - 리눅스는 많은 다양한 프로세서 아키텍쳐에서 실행된다. 한 아키텍쳐의 + 바이너리 드라이버를 다른 아키텍쳐에서 정상적으로 실행시킬 방법은 + 없다. + +커널을 빌드했던 C 컴파일러와 정확하게 같은 것을 사용하고 정확하게 같은 +커널 구성(configuration)을 사용하여 여러분들의 모듈을 빌드하면 간단히 +많은 문제들을 해결할 수 있다. 이렇게 하는 것은 여러분들이 하나의 리눅스 +배포판의 하나의 배포 버젼을 위한 모듈만을 제공한다면 별일 아닐 것이다. +그러나 각기 다른 리눅스 배포판마다 한번씩 빌드하는 수를 각 리눅스 배포판마다 +제공하는 다른 릴리즈의 수와 곱하게 되면 이번에는 각 릴리즈들의 다른 빌드 +옵션의 악몽과 마주하게 것이다. 또한 각 리눅스 배포판들은 다른 하드웨어 +종류에(다른 프로세서 타입과 다른 옵션들) 맞춰져 있는 많은 다른 커널들을 +배포한다. 그러므로 한번의 배포에서조차 여러분들의 모듈은 여러 버젼을 +만들 필요가 있다. + +나를 믿어라. 여러분들은 이러한 종류의 배포를 지원하려고 시도한다면 시간이 +지나면 미칠지경이 될 것이다. 난 이러한 것을 오래전에 아주 어렵게 배웠다... + + + +변하지않는 커널 소스 인터페이스들 +--------------------------------- + +리눅스 커널 드라이버를 계속해서 메인 커널 트리에 반영하지 않고 +유지보수하려고 하는 사름들과 이 문제를 논의하게 되면 훨씬 더 +"논란의 여지가 많은" 주제가 될 것이다. + +리눅스 커널 개발은 끊임없이 빠른 속도로 이루어지고 있으며 결코 +느슨해진 적이 없다. 커널 개발자들이 현재 인터페이스들에서 버그를 +발견하거나 무엇인가 할수 있는 더 좋은 방법을 찾게 되었다고 하자. +그들이 발견한 것을 실행한다면 아마도 더 잘 동작하도록 현재 인터페이스들을 +수정하게 될 것이다. 그들이 그런 일을 하게되면 함수 이름들은 변하게 되고, +구조체들은 늘어나거나 줄어들게 되고, 함수 파라미터들은 재작업될 것이다. +이러한 일이 발생되면 커널 내에 이 인터페이스를 사용했던 인스턴스들이 동시에 +수정될 것이며 이러한 과정은 모든 것이 계속해서 올바르게 동작할 것이라는 +것을 보장한다. + +이러한 것의 한 예로써, 커널 내부의 USB 인터페이스들은 이 서브시스템이 +생긴 이후로 적어도 3번의 다른 재작업을 겪었다. 이 재작업들은 많은 다른 +문제들을 풀었다. + - 데이터 스트림들의 동기적인 모델에서 비동기적인 모델로의 변화. 이것은 + 많은 드라이버들의 복잡성을 줄이고 처리량을 향상시켜 현재는 거의 모든 + USB 장치들의 거의 최대 속도로 실행되고 있다. + - USB 드라이버가 USB 코어로부터 데이터 패킷들을 할당받로록 한 변경으로 + 인해서 지금의 모든 드라이버들은 많은 문서화된 데드락을 수정하기 위하여 + USB 코어에게 더 많은 정보를 제공해야만 한다. + +이것은 오랫동안 자신의 오래된 USB 인터페이스들을 유지해야 하는 closed 운영체제들과는 +완전히 반대되는 것이다. closed된 운영체제들은 새로운 개발자들에게 우연히 낡은 +인터페이스를 사용하게 할 기회를 주게되며, 적절하지 못한 방법으로 처리하게 되어 +운영체제의 안정성을 해치는 문제를 야기하게 된다. + +이 두가지의 예들 모두, 모든 개발자들은 꼭 이루어져야 하는 중요한 변화들이라고 +동의를 하였고 비교적 적은 고통으로 변경되어졌다. 리눅스가 변하지 않는 소스 +인터페이스를 고집한다면, 새로운 인터페이스가 만들어지게 되며 반면 기존의 오래된 +것들, 그리고 깨진 것들은 계속해서 유지되어야 하며 이러한 일들은 USB 개발자들에게 +또 다른 일거리를 주게 된다. 모든 리눅스 USB 개발자들에게 자신의 그들의 업무를 +마친 후 시간을 투자하여 아무 득도 없는 무료 봉사를 해달라고 하는 것은 가능성이 +희박한 일이다. + +보안 문제 역시 리눅스에게는 매우 중요하다. 보안 문제가 발견되면 그것은 +매우 짧은 시간 안에 수정된다. 보안 문제는 그 문제를 해결하기 위하여 +여러번 내부 커널 인터페이스들을 재작업하게 만들었다. 이러한 문제가 +발생하였을 때 그 인터페이스들을 사용하는 모든 드라이버들도 동시에 +수정되어 보안 문제가 앞으로 갑작스럽게 생기지는 않을 것이라는 것을 +보장한다. 내부 인터페이스들의 변경이 허락되지 않으면 이러한 종류의 보안 +문제를 수정하고 그것이 다시 발생하지 않을 것이라고 보장하는 것은 가능하지 +않을 것이다. + +커널 인터페이스들은 계속해서 정리되고 있다. 현재 인터페이스를 사용하는 +사람이 한명도 없다면 그것은 삭제된다. 이것은 커널이 가능한한 가장 작게 +유지되며 존재하는 모든 가능성이 있는 인터페이스들이 테스트된다는 것을 +보장한다(사용되지 않는 인터페이스들은 유효성 검증을 하기가 거의 불가능하다). + + +무엇을 해야 하나 +--------------- +자, 여러분이 메인 커널 트리에 있지 않은 리눅스 커널 드라이버를 가지고 +있다면 여러분은 즉, 개발자는 무엇을 해야 하나? 모든 배포판마다 다른 +커널 버젼을 위한 바이너리 드라이버를 배포하는 것은 악몽이며 계속해서 +변하고 있는 커널 인터페이스들의 맞처 유지보수하려고 시도하는 것은 힘든 +일이다. + +간단하다. 여러분의 커널 드라이버를 메인 커널 트리에 반영하라(우리는 여기서 +GPL을 따르는 배포 드라이버에 관해 얘기하고 있다는 것을 상기하라. 여러분의 +코드가 이러한 분류에 해당되지 않는다면 행운을 빈다. 여러분 스스로 어떻게든 +해야만 한다). 여러분의 드라이버가 트리에 있게되면 커널 인터페이스가 +변경되더라도 가장 먼저 커널에 변경을 가했던 사람에 의해서 수정될 것이다. +이것은 여러분의 드라이버가 여러분의 별다른 노력없이 항상 빌드가 가능하며 +동작하는 것을 보장한다. + +메인 커널 트리에 여러분의 드라이버를 반영하면 얻게 되는 장점들은 다음과 같다. + - 관리의 드는 비용(원래 개발자의)은 줄어줄면서 드라이버의 질은 향상될 것이다. + - 다른 개발자들이 여러분의 드라이버에 기능들을 추가 할 것이다. + - 다른 사람들은 여러분의 드라이버에 버그를 발견하고 수정할 것이다. + - 다른 사람들은 여러분의 드라이버의 개선점을 찾을 줄 것이다. + - 외부 인터페이스 변경으로 인해 여러분의 드라이버의 수정이 필요하다면 다른 + 사람들이 드라이버를 업데이트할 것이다. + - 여러분의 드라이버는 별다른 노력 없이 모든 리눅스 배포판에 자동적으로 + 추가될 것이다. + +리눅스는 다른 운영 체제보다 "쉽게 쓸수 있는(out of the box)" 많은 다른 장치들을 +지원하고 어떤 다른 운영 체제보다 다양한 아키텍쳐위에서 이러한 장치들을 지원하기 때문에 +이러한 증명된 개발 모델은 틀림없이 바로 가고 있는 것이다. + + + +------ + +이 문서의 초안을 검토해주고 코멘트 해준 Randy Dunlap, Andrew Morton, David Brownell, +Hanna Linder, Robert Love, 그리고 Nishanth Aravamudan에게 감사한다. diff --git a/trunk/Documentation/lguest/lguest.c b/trunk/Documentation/lguest/lguest.c index f2668390e8f7..9b0e322118b5 100644 --- a/trunk/Documentation/lguest/lguest.c +++ b/trunk/Documentation/lguest/lguest.c @@ -62,8 +62,8 @@ typedef uint8_t u8; #endif /* We can have up to 256 pages for devices. */ #define DEVICE_PAGES 256 -/* This fits nicely in a single 4096-byte page. */ -#define VIRTQUEUE_NUM 127 +/* This will occupy 2 pages: it must be a power of 2. */ +#define VIRTQUEUE_NUM 128 /*L:120 verbose is both a global flag and a macro. The C preprocessor allows * this, and although I wouldn't recommend it, it works quite nicely here. */ @@ -1036,16 +1036,22 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, void *p; /* First we need some pages for this virtqueue. */ - pages = (vring_size(num_descs) + getpagesize() - 1) / getpagesize(); + pages = (vring_size(num_descs, getpagesize()) + getpagesize() - 1) + / getpagesize(); p = get_pages(pages); + /* Initialize the virtqueue */ + vq->next = NULL; + vq->last_avail_idx = 0; + vq->dev = dev; + /* Initialize the configuration. */ vq->config.num = num_descs; vq->config.irq = devices.next_irq++; vq->config.pfn = to_guest_phys(p) / getpagesize(); /* Initialize the vring. */ - vring_init(&vq->vring, num_descs, p); + vring_init(&vq->vring, num_descs, p, getpagesize()); /* Add the configuration information to this device's descriptor. */ add_desc_field(dev, VIRTIO_CONFIG_F_VIRTQUEUE, @@ -1056,9 +1062,6 @@ static void add_virtqueue(struct device *dev, unsigned int num_descs, for (i = &dev->vq; *i; i = &(*i)->next); *i = vq; - /* Link virtqueue back to device. */ - vq->dev = dev; - /* Set the routine to call when the Guest does something to this * virtqueue. */ vq->handle_output = handle_output; @@ -1092,6 +1095,7 @@ static struct device *new_device(const char *name, u16 type, int fd, dev->desc = new_dev_desc(type); dev->handle_input = handle_input; dev->name = name; + dev->vq = NULL; return dev; } @@ -1342,7 +1346,7 @@ static bool service_io(struct device *dev) if (out->type & VIRTIO_BLK_T_SCSI_CMD) { fprintf(stderr, "Scsi commands unsupported\n"); in->status = VIRTIO_BLK_S_UNSUPP; - wlen = sizeof(in); + wlen = sizeof(*in); } else if (out->type & VIRTIO_BLK_T_OUT) { /* Write */ @@ -1363,7 +1367,7 @@ static bool service_io(struct device *dev) /* Die, bad Guest, die. */ errx(1, "Write past end %llu+%u", off, ret); } - wlen = sizeof(in); + wlen = sizeof(*in); in->status = (ret >= 0 ? VIRTIO_BLK_S_OK : VIRTIO_BLK_S_IOERR); } else { /* Read */ @@ -1376,10 +1380,10 @@ static bool service_io(struct device *dev) ret = readv(vblk->fd, iov+1, in_num-1); verbose("READ from sector %llu: %i\n", out->sector, ret); if (ret >= 0) { - wlen = sizeof(in) + ret; + wlen = sizeof(*in) + ret; in->status = VIRTIO_BLK_S_OK; } else { - wlen = sizeof(in); + wlen = sizeof(*in); in->status = VIRTIO_BLK_S_IOERR; } } diff --git a/trunk/Documentation/lguest/lguest.txt b/trunk/Documentation/lguest/lguest.txt index 7885ab2d5f53..722d4e7fbebe 100644 --- a/trunk/Documentation/lguest/lguest.txt +++ b/trunk/Documentation/lguest/lguest.txt @@ -109,10 +109,6 @@ Running Lguest: See http://linux-net.osdl.org/index.php/Bridge for general information on how to get bridging working. -- You can also create an inter-guest network using - "--sharenet=": any two guests using the same file are on - the same network. This file is created if it does not exist. - There is a helpful mailing list at http://ozlabs.org/mailman/listinfo/lguest Good luck! diff --git a/trunk/Documentation/local_ops.txt b/trunk/Documentation/local_ops.txt index 4269a1105b37..1a45f11e645e 100644 --- a/trunk/Documentation/local_ops.txt +++ b/trunk/Documentation/local_ops.txt @@ -45,6 +45,29 @@ long fails. The definition looks like : typedef struct { atomic_long_t a; } local_t; +* Rules to follow when using local atomic operations + +- Variables touched by local ops must be per cpu variables. +- _Only_ the CPU owner of these variables must write to them. +- This CPU can use local ops from any context (process, irq, softirq, nmi, ...) + to update its local_t variables. +- Preemption (or interrupts) must be disabled when using local ops in + process context to make sure the process won't be migrated to a + different CPU between getting the per-cpu variable and doing the + actual local op. +- When using local ops in interrupt context, no special care must be + taken on a mainline kernel, since they will run on the local CPU with + preemption already disabled. I suggest, however, to explicitly + disable preemption anyway to make sure it will still work correctly on + -rt kernels. +- Reading the local cpu variable will provide the current copy of the + variable. +- Reads of these variables can be done from any CPU, because updates to + "long", aligned, variables are always atomic. Since no memory + synchronization is done by the writer CPU, an outdated copy of the + variable can be read when reading some _other_ cpu's variables. + + * Rules to follow when using local atomic operations - Variables touched by local ops must be per cpu variables. diff --git a/trunk/Documentation/markers.txt b/trunk/Documentation/markers.txt index 295a71bc301e..d9f50a19fa0c 100644 --- a/trunk/Documentation/markers.txt +++ b/trunk/Documentation/markers.txt @@ -35,12 +35,14 @@ In order to use the macro trace_mark, you should include linux/marker.h. And, -trace_mark(subsystem_event, "%d %s", someint, somestring); +trace_mark(subsystem_event, "myint %d mystring %s", someint, somestring); Where : - subsystem_event is an identifier unique to your event - subsystem is the name of your subsystem. - event is the name of the event to mark. -- "%d %s" is the formatted string for the serializer. +- "myint %d mystring %s" is the formatted string for the serializer. "myint" and + "mystring" are repectively the field names associated with the first and + second parameter. - someint is an integer. - somestring is a char pointer. diff --git a/trunk/Documentation/namespaces/compatibility-list.txt b/trunk/Documentation/namespaces/compatibility-list.txt new file mode 100644 index 000000000000..defc5589bfcd --- /dev/null +++ b/trunk/Documentation/namespaces/compatibility-list.txt @@ -0,0 +1,39 @@ + Namespaces compatibility list + +This document contains the information about the problems user +may have when creating tasks living in different namespaces. + +Here's the summary. This matrix shows the known problems, that +occur when tasks share some namespace (the columns) while living +in different other namespaces (the rows): + + UTS IPC VFS PID User Net +UTS X +IPC X 1 +VFS X +PID 1 1 X +User 2 2 X +Net X + +1. Both the IPC and the PID namespaces provide IDs to address + object inside the kernel. E.g. semaphore with IPCID or + process group with pid. + + In both cases, tasks shouldn't try exposing this ID to some + other task living in a different namespace via a shared filesystem + or IPC shmem/message. The fact is that this ID is only valid + within the namespace it was obtained in and may refer to some + other object in another namespace. + +2. Intentionally, two equal user IDs in different user namespaces + should not be equal from the VFS point of view. In other + words, user 10 in one user namespace shouldn't have the same + access permissions to files, belonging to user 10 in another + namespace. + + The same is true for the IPC namespaces being shared - two users + from different user namespaces should not access the same IPC objects + even having equal UIDs. + + But currently this is not so. + diff --git a/trunk/Documentation/networking/00-INDEX b/trunk/Documentation/networking/00-INDEX index f5a5e6d3d541..563e442f2d42 100644 --- a/trunk/Documentation/networking/00-INDEX +++ b/trunk/Documentation/networking/00-INDEX @@ -4,8 +4,6 @@ - information on the 3Com EtherLink Plus (3c505) driver. 6pack.txt - info on the 6pack protocol, an alternative to KISS for AX.25 -Configurable - - info on some of the configurable network parameters DLINK.txt - info on the D-Link DE-600/DE-620 parallel port pocket adapters PLIP.txt @@ -26,8 +24,6 @@ baycom.txt - info on the driver for Baycom style amateur radio modems bridge.txt - where to get user space programs for ethernet bridging with Linux. -comx.txt - - info on drivers for COMX line of synchronous serial adapters. cops.txt - info on the COPS LocalTalk Linux driver cs89x0.txt @@ -78,20 +74,14 @@ ltpc.txt - the Apple or Farallon LocalTalk PC card driver multicast.txt - Behaviour of cards under Multicast -ncsa-telnet - - notes on how NCSA telnet (DOS) breaks with MTU discovery enabled. netdevices.txt - info on network device driver functions exported to the kernel. olympic.txt - IBM PCI Pit/Pit-Phy/Olympic Token Ring driver info. policy-routing.txt - IP policy-based routing -pt.txt - - the Gracilis Packetwin AX.25 device driver ray_cs.txt - Raylink Wireless LAN card driver info. -routing.txt - - the new routing mechanism shaper.txt - info on the module that can shape/limit transmitted traffic. sk98lin.txt diff --git a/trunk/Documentation/networking/3c505.txt b/trunk/Documentation/networking/3c505.txt index b9d5b7230118..72f38b13101d 100644 --- a/trunk/Documentation/networking/3c505.txt +++ b/trunk/Documentation/networking/3c505.txt @@ -14,8 +14,7 @@ If no base address is given at boot time, the driver will autoprobe ports 0x300, 0x280 and 0x310 (in that order). If no IRQ is given, the driver will try to probe for it. -The driver can be used as a loadable module. See net-modules.txt for details -of the parameters it can take. +The driver can be used as a loadable module. Theoretically, one instance of the driver can now run multiple cards, in the standard way (when loading a module, say "modprobe 3c505 diff --git a/trunk/Documentation/networking/Configurable b/trunk/Documentation/networking/Configurable deleted file mode 100644 index 69c0dd466ead..000000000000 --- a/trunk/Documentation/networking/Configurable +++ /dev/null @@ -1,34 +0,0 @@ - -There are a few network parameters that can be tuned to better match -the kernel to your system hardware and intended usage. The defaults -are usually a good choice for 99% of the people 99% of the time, but -you should be aware they do exist and can be changed. - -The current list of parameters can be found in the files: - - linux/net/TUNABLE - Documentation/networking/ip-sysctl.txt - -Some of these are accessible via the sysctl interface, and many more are -scheduled to be added in this way. For example, some parameters related -to Address Resolution Protocol (ARP) are very easily viewed and altered. - - # cat /proc/sys/net/ipv4/arp_timeout - 6000 - # echo 7000 > /proc/sys/net/ipv4/arp_timeout - # cat /proc/sys/net/ipv4/arp_timeout - 7000 - -Others are already accessible via the related user space programs. -For example, MAX_WINDOW has a default of 32 k which is a good choice for -modern hardware, but if you have a slow (8 bit) Ethernet card and/or a slow -machine, then this will be far too big for the card to keep up with fast -machines transmitting on the same net, resulting in overruns and receive errors. -A value of about 4 k would be more appropriate, which can be set via: - - # route add -net 192.168.3.0 window 4096 - -The remainder of these can only be presently changed by altering a #define -in the related header file. This means an edit and recompile cycle. - - Paul Gortmaker 06/96 diff --git a/trunk/Documentation/networking/bonding.txt b/trunk/Documentation/networking/bonding.txt index 11340625e363..6cc30e0d5795 100644 --- a/trunk/Documentation/networking/bonding.txt +++ b/trunk/Documentation/networking/bonding.txt @@ -554,6 +554,30 @@ xmit_hash_policy This algorithm is 802.3ad compliant. + layer2+3 + + This policy uses a combination of layer2 and layer3 + protocol information to generate the hash. + + Uses XOR of hardware MAC addresses and IP addresses to + generate the hash. The formula is + + (((source IP XOR dest IP) AND 0xffff) XOR + ( source MAC XOR destination MAC )) + modulo slave count + + This algorithm will place all traffic to a particular + network peer on the same slave. For non-IP traffic, + the formula is the same as for the layer2 transmit + hash policy. + + This policy is intended to provide a more balanced + distribution of traffic than layer2 alone, especially + in environments where a layer3 gateway device is + required to reach most destinations. + + This algorithm is 802.3ad complient. + layer3+4 This policy uses upper layer protocol information, @@ -589,8 +613,9 @@ xmit_hash_policy or may not tolerate this noncompliance. The default value is layer2. This option was added in bonding -version 2.6.3. In earlier versions of bonding, this parameter does -not exist, and the layer2 policy is the only policy. + version 2.6.3. In earlier versions of bonding, this parameter + does not exist, and the layer2 policy is the only policy. The + layer2+3 value was added for bonding version 3.2.2. 3. Configuring Bonding Devices diff --git a/trunk/Documentation/networking/comx.txt b/trunk/Documentation/networking/comx.txt deleted file mode 100644 index d1526eba2645..000000000000 --- a/trunk/Documentation/networking/comx.txt +++ /dev/null @@ -1,248 +0,0 @@ - - COMX drivers for the 2.2 kernel - -Originally written by: Tivadar Szemethy, -Currently maintained by: Gergely Madarasz - -Last change: 21/06/1999. - -INTRODUCTION - -This document describes the software drivers and their use for the -COMX line of synchronous serial adapters for Linux version 2.2.0 and -above. -The cards are produced and sold by ITC-Pro Ltd. Budapest, Hungary -For further info contact -or http://www.itc.hu (mostly in Hungarian). -The firmware files and software are available from ftp://ftp.itc.hu - -Currently, the drivers support the following cards and protocols: - -COMX (2x64 kbps intelligent board) -CMX (1x256 + 1x128 kbps intelligent board) -HiCOMX (2x2Mbps intelligent board) -LoCOMX (1x512 kbps passive board) -MixCOM (1x512 or 2x512kbps passive board with a hardware watchdog an - optional BRI interface and optional flashROM (1-32M)) -SliceCOM (1x2Mbps channelized E1 board) -PciCOM (X21) - -At the moment of writing this document, the (Cisco)-HDLC, LAPB, SyncPPP and -Frame Relay (DTE, rfc1294 IP encapsulation with partially implemented Q933a -LMI) protocols are available as link-level protocol. -X.25 support is being worked on. - -USAGE - -Load the comx.o module and the hardware-specific and protocol-specific -modules you'll need into the running kernel using the insmod utility. -This creates the /proc/comx directory. -See the example scripts in the 'etc' directory. - -/proc INTERFACE INTRO - -The COMX driver set has a new type of user interface based on the /proc -filesystem which eliminates the need for external user-land software doing -IOCTL calls. -Each network interface or device (i.e. those ones you configure with 'ifconfig' -and 'route' etc.) has a corresponding directory under /proc/comx. You can -dynamically create a new interface by saying 'mkdir /proc/comx/comx0' (or you -can name it whatever you want up to 8 characters long, comx[n] is just a -convention). -Generally the files contained in these directories are text files, which can -be viewed by 'cat filename' and you can write a string to such a file by -saying 'echo _string_ >filename'. This is very similar to the sysctl interface. -Don't use a text editor to edit these files, always use 'echo' (or 'cat' -where appropriate). -When you've created the comx[n] directory, two files are created automagically -in it: 'boardtype' and 'protocol'. You have to fill in these files correctly -for your board and protocol you intend to use (see the board and protocol -descriptions in this file below or the example scripts in the 'etc' directory). -After filling in these files, other files will appear in the directory for -setting the various hardware- and protocol-related informations (for example -irq and io addresses, keepalive values etc.) These files are set to default -values upon creation, so you don't necessarily have to change all of them. - -When you're ready with filling in the files in the comx[n] directory, you can -configure the corresponding network interface with the standard network -configuration utilities. If you're unable to bring the interfaces up, look up -the various kernel log files on your system, and consult the messages for -a probable reason. - -EXAMPLE - -To create the interface 'comx0' which is the first channel of a COMX card: - -insmod comx -# insmod comx-hw-comx ; insmod comx-proto-ppp (these are usually -autoloaded if you use the kernel module loader) - -mkdir /proc/comx/comx0 -echo comx >/proc/comx/comx0/boardtype -echo 0x360 >/proc/comx/comx0/io <- jumper-selectable I/O port -echo 0x0a >/proc/comx/comx0/irq <- jumper-selectable IRQ line -echo 0xd000 >/proc/comx/comx0/memaddr <- software-configurable memory - address. COMX uses 64 KB, and this - can be: 0xa000, 0xb000, 0xc000, - 0xd000, 0xe000. Avoid conflicts - with other hardware. -cat /proc/comx/comx0/firmware <- the firmware for the card -echo HDLC >/proc/comx/comx0/protocol <- the data-link protocol -echo 10 >/proc/comx/comx0/keepalive <- the keepalive for the protocol -ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 <- - finally configure it with ifconfig -Check its status: -cat /proc/comx/comx0/status - -If you want to use the second channel of this board: - -mkdir /proc/comx/comx1 -echo comx >/proc/comx/comx1/boardtype -echo 0x360 >/proc/comx/comx1/io -echo 10 >/proc/comx/comx1/irq -echo 0xd000 >/proc/comx/comx1/memaddr -echo 1 >/proc/comx/comx1/channel <- channels are numbered - as 0 (default) and 1 - -Now, check if the driver recognized that you're going to use the other -channel of the same adapter: - -cat /proc/comx/comx0/twin -comx1 -cat /proc/comx/comx1/twin -comx0 - -You don't have to load the firmware twice, if you use both channels of -an adapter, just write it into the channel 0's /proc firmware file. - -Default values: io 0x360 for COMX, 0x320 (HICOMX), irq 10, memaddr 0xd0000 - -THE LOCOMX HARDWARE DRIVER - -The LoCOMX driver doesn't require firmware, and it doesn't use memory either, -but it uses DMA channels 1 and 3. You can set the clock rate (if enabled by -jumpers on the board) by writing the kbps value into the file named 'clock'. -Set it to 'external' (it is the default) if you have external clock source. - -(Note: currently the LoCOMX driver does not support the internal clock) - -THE COMX, CMX AND HICOMX DRIVERS - -On the HICOMX, COMX and CMX, you have to load the firmware (it is different for -the three cards!). All these adapters can share the same memory -address (we usually use 0xd0000). On the CMX you can set the internal -clock rate (if enabled by jumpers on the small adapter boards) by writing -the kbps value into the 'clock' file. You have to do this before initializing -the card. If you use both HICOMX and CMX/COMX cards, initialize the HICOMX -first. The I/O address of the HICOMX board is not configurable by any -method available to the user: it is hardwired to 0x320, and if you have to -change it, consult ITC-Pro Ltd. - -THE MIXCOM DRIVER - -The MixCOM board doesn't require firmware, the driver communicates with -it through I/O ports. You can have three of these cards in one machine. - -THE SLICECOM DRIVER - -The SliceCOM board doesn't require firmware. You can have 4 of these cards -in one machine. The driver doesn't (yet) support shared interrupts, so -you will need a separate IRQ line for every board. -Read Documentation/networking/slicecom.txt for help on configuring -this adapter. - -THE HDLC/PPP LINE PROTOCOL DRIVER - -The HDLC/SyncPPP line protocol driver uses the kernel's built-in syncppp -driver (syncppp.o). You don't have to manually select syncppp.o when building -the kernel, the dependencies compile it in automatically. - - - - -EXAMPLE -(setting up hw parameters, see above) - -# using HDLC: -echo hdlc >/proc/comx/comx0/protocol -echo 10 >/proc/comx/comx0/keepalive <- not necessary, 10 is the default -ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 - -(setting up hw parameters, see above) - -# using PPP: -echo ppp >/proc/comx/comx0/protocol -ifconfig comx0 up -ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 - - -THE LAPB LINE PROTOCOL DRIVER - -For this, you'll need to configure LAPB support (See 'LAPB Data Link Driver' in -'Network options' section) into your kernel (thanks to Jonathan Naylor for his -excellent implementation). -comx-proto-lapb.o provides the following files in the appropriate directory -(the default values in parens): t1 (5), t2 (1), n2 (20), mode (DTE, STD) and -window (7). Agree with the administrator of your peer router on these -settings (most people use defaults, but you have to know if you are DTE or -DCE). - -EXAMPLE - -(setting up hw parameters, see above) -echo lapb >/proc/comx/comx0/protocol -echo dce >/proc/comx/comx0/mode <- DCE interface in this example -ifconfig comx0 1.2.3.4 pointopoint 5.6.7.8 netmask 255.255.255.255 - - -THE FRAME RELAY PROTOCOL DRIVER - -You DON'T need any other frame relay related modules from the kernel to use -COMX-Frame Relay. This protocol is a bit more complicated than the others, -because it allows to use 'subinterfaces' or DLCIs within one physical device. -First you have to create the 'master' device (the actual physical interface) -as you would do for other protocols. Specify 'frad' as protocol type. -Now you can bring this interface up by saying 'ifconfig comx0 up' (or whatever -you've named the interface). Do not assign any IP address to this interface -and do not set any routes through it. -Then, set up your DLCIs the following way: create a comx interface for each -DLCI you intend to use (with mkdir), and write 'dlci' to the 'boardtype' file, -and 'ietf-ip' to the 'protocol' file. Currently, the only supported -encapsulation type is this (also called as RFC1294/1490 IP encapsulation). -Write the DLCI number to the 'dlci' file, and write the name of the physical -COMX device to the file called 'master'. -Now you can assign an IP address to this interface and set routes using it. -See the example file for further info and example config script. -Notes: this driver implements a DTE interface with partially implemented -Q933a LMI. -You can find an extensively commented example in the 'etc' directory. - -FURTHER /proc FILES - -boardtype: -Type of the hardware. Valid values are: - 'comx', 'hicomx', 'locomx', 'cmx', 'slicecom'. - -protocol: -Data-link protocol on this channel. Can be: HDLC, LAPB, PPP, FRAD - -status: -You can read the channel's actual status from the 'status' file, for example -'cat /proc/comx/comx3/status'. - -lineup_delay: -Interpreted in seconds (default is 1). Used to avoid line jitter: the system -will consider the line status 'UP' only if it is up for at least this number -of seconds. - -debug: -You can set various debug options through this file. Valid options are: -'comx_events', 'comx_tx', 'comx_rx', 'hw_events', 'hw_tx', 'hw_rx'. -You can enable a debug options by writing its name prepended by a '+' into -the debug file, for example 'echo +comx_rx >comx0/debug'. -Disabling an option happens similarly, use the '-' prefix -(e.g. 'echo -hw_rx >debug'). -Debug results can be read from the debug file, for example: -tail -f /proc/comx/comx2/debug - - diff --git a/trunk/Documentation/networking/ncsa-telnet b/trunk/Documentation/networking/ncsa-telnet deleted file mode 100644 index d77d28b09093..000000000000 --- a/trunk/Documentation/networking/ncsa-telnet +++ /dev/null @@ -1,16 +0,0 @@ -NCSA telnet doesn't work with path MTU discovery enabled. This is due to a -bug in NCSA that also stops it working with other modern networking code -such as Solaris. - -The following information is courtesy of -Marek - -There is a fixed version somewhere on ftp.upe.ac.za (sorry, I don't -remember the exact pathname, and this site is very slow from here). -It may or may not be faster for you to get it from -ftp://ftp.ists.pwr.wroc.pl/pub/msdos/telnet/ncsa_upe/tel23074.zip -(source is in v230704s.zip). I have tested it with 1.3.79 (with -path mtu discovery enabled - ncsa 2.3.08 didn't work) and it seems -to work. I don't know if anyone is working on this code - this -version is over a year old. Too bad - it's faster and often more -stable than these windoze telnets, and runs on almost anything... diff --git a/trunk/Documentation/networking/pt.txt b/trunk/Documentation/networking/pt.txt deleted file mode 100644 index 72e888c1d988..000000000000 --- a/trunk/Documentation/networking/pt.txt +++ /dev/null @@ -1,58 +0,0 @@ -This is the README for the Gracilis Packetwin device driver, version 0.5 -ALPHA for Linux 1.3.43. - -These files will allow you to talk to the PackeTwin (now know as PT) and -connect through it just like a pair of TNCs. To do this you will also -require the AX.25 code in the kernel enabled. - -There are four files in this archive; this readme, a patch file, a .c file -and finally a .h file. The two program files need to be put into the -drivers/net directory in the Linux source tree, for me this is the -directory /usr/src/linux/drivers/net. The patch file needs to be patched in -at the top of the Linux source tree (/usr/src/linux in my case). - -You will most probably have to edit the pt.c file to suit your own setup, -this should just involve changing some of the defines at the top of the file. -Please note that if you run an external modem you must specify a speed of 0. - -The program is currently setup to run a 4800 baud external modem on port A -and a Kantronics DE-9600 daughter board on port B so if you have this (or -something similar) then you're right. - -To compile in the driver, put the files in the correct place and patch in -the diff. You will have to re-configure the kernel again before you -recompile it. - -The driver is not real good at the moment for finding the card. You can -'help' it by changing the order of the potential addresses in the structure -found in the pt_init() function so the address of where the card is is put -first. - -After compiling, you have to get them going, they are pretty well like any -other net device and just need ifconfig to get them going. -As an example, here is my /etc/rc.net --------------------------- - -# -# Configure the PackeTwin, port A. -/sbin/ifconfig pt0a 44.136.8.87 hw ax25 vk2xlz mtu 512 -/sbin/ifconfig pt0a 44.136.8.87 broadcast 44.136.8.255 netmask 255.255.255.0 -/sbin/route add -net 44.136.8.0 netmask 255.255.255.0 dev pt0a -/sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.136.8.68 dev pt0a -/sbin/route add -net 138.25.16.0 netmask 255.255.240.0 dev pt0a -/sbin/route add -host 44.136.8.255 dev pt0a -# -# Configure the PackeTwin, port B. -/sbin/ifconfig pt0b 44.136.8.87 hw ax25 vk2xlz-1 mtu 512 -/sbin/ifconfig pt0b 44.136.8.87 broadcast 44.255.255.255 netmask 255.0.0.0 -/sbin/route add -host 44.136.8.216 dev pt0b -/sbin/route add -host 44.136.8.95 dev pt0b -/sbin/route add -host 44.255.255.255 dev pt0b - -This version of the driver comes under the GNU GPL. If you have one of my -previous (non-GPL) versions of the driver, please update to this one. - -I hope that this all works well for you. I would be pleased to hear how -many people use the driver and if it does its job. - - - Craig vk2xlz diff --git a/trunk/Documentation/networking/routing.txt b/trunk/Documentation/networking/routing.txt deleted file mode 100644 index a26838b930f2..000000000000 --- a/trunk/Documentation/networking/routing.txt +++ /dev/null @@ -1,46 +0,0 @@ -The directory ftp.inr.ac.ru:/ip-routing contains: - -- iproute.c - "professional" routing table maintenance utility. - -- rdisc.tar.gz - rdisc daemon, ported from Sun. - STRONGLY RECOMMENDED FOR ALL HOSTS. - -- routing.tgz - original Mike McLagan's route by source patch. - Currently it is obsolete. - -- gated.dif-ss.gz - gated-R3_6Alpha_2 fixes. - Look at README.gated - -- mrouted-3.8.dif.gz - mrouted-3.8 fixes. - -- rtmon.c - trivial debugging utility: reads and stores netlink. - - -NEWS for user. - -- Policy based routing. Routing decisions are made on the basis - not only of destination address, but also source address, - TOS and incoming interface. -- Complete set of IP level control messages. - Now Linux is the only OS in the world complying to RFC requirements. - Great win 8) -- New interface addressing paradigm. - Assignment of address ranges to interface, - multiple prefixes etc. etc. - Do not bother, it is compatible with the old one. Moreover: -- You don't need to do "route add aaa.bbb.ccc... eth0" anymore, - it is done automatically. -- "Abstract" UNIX sockets and security enhancements. - This is necessary to use TIRPC and TLI emulation library. - -NEWS for hacker. - -- New destination cache. Flexible, robust and just beautiful. -- Network stack is reordered, simplified, optimized, a lot of bugs fixed. - (well, and new bugs were introduced, but I haven't seen them yet 8)) - It is difficult to describe all the changes, look into source. - -If you see this file, then this patch works 8) - -Alexey Kuznetsov. -kuznet@ms2.inr.ac.ru diff --git a/trunk/Documentation/networking/slicecom.hun b/trunk/Documentation/networking/slicecom.hun deleted file mode 100644 index bed2f045e550..000000000000 --- a/trunk/Documentation/networking/slicecom.hun +++ /dev/null @@ -1,371 +0,0 @@ - -SliceCOM adapter felhasznaloi dokumentacioja - 0.51 verziohoz - -Bartók István -Utolso modositas: Wed Aug 29 17:26:58 CEST 2001 - ------------------------------------------------------------------ - -Hasznalata: - -Forditas: - -Code maturity level options - [*] Prompt for development and/or incomplete code/drivers - -Network device support - Wan interfaces - MultiGate (COMX) synchronous - Support for MUNICH based boards: SliceCOM, PCICOM (NEW) - Support for HDLC and syncPPP... - - -A modulok betoltese: - -modprobe comx - -modprobe comx-proto-ppp # a Cisco-HDLC es a SyncPPP protokollt is - # ez a modul adja - -modprobe comx-hw-munich # a modul betoltodeskor azonnal jelent a - # syslogba a detektalt kartyakrol - - -Konfiguralas: - -# Ezen az interfeszen Cisco-HDLC vonali protokoll fog futni -# Az interfeszhez rendelt idoszeletek: 1,2 (128 kbit/sec-es vonal) -# (a G.703 keretben az elso adatot vivo idoszelet az 1-es) -# -mkdir /proc/comx/comx0.1/ -echo slicecom >/proc/comx/comx0.1/boardtype -echo hdlc >/proc/comx/comx0.1/protocol -echo 1 2 >/proc/comx/comx0.1/timeslots - - -# Ezen az interfeszen SyncPPP vonali protokoll fog futni -# Az interfeszhez rendelt idoszelet: 3 (64 kbit/sec-es vonal) -# -mkdir /proc/comx/comx0.2/ -echo slicecom >/proc/comx/comx0.2/boardtype -echo ppp >/proc/comx/comx0.2/protocol -echo 3 >/proc/comx/comx0.2/timeslots - -... - -ifconfig comx0.1 up -ifconfig comx0.2 up - ------------------------------------------------------------------ - -A COMX driverek default 20 csomagnyi transmit queue-t rendelnek a halozati -interfeszekhez. WAN halozatokban ennel hosszabbat is szokas hasznalni -(20 es 100 kozott), hogy a vonal kihasznaltsaga nagy terheles eseten jobb -legyen (bar ezzel megno a varhato kesleltetes a csomagok sorban allasa miatt): - -# ifconfig comx0 txqueuelen 50 - -Ezt a beallitasi lehetoseget csak az ujabb disztribuciok ifconfig parancsa -tamogatja (amik mar a 2.2 kernelekhez keszultek, mint a RedHat 6.1 vagy a -Debian 2.2). - -A 2.1-es Debian disztribuciohoz a http://www.debian.org/~rcw/2.2/netbase/ -cimrol toltheto le ujabb netbase csomag, ami mar ilyet tamogato ifconfig -parancsot tartalmaz. Bovebben a 2.2 kernel hasznalatarol Debian 2.1 alatt: -http://www.debian.org/releases/stable/running-kernel-2.2 - ------------------------------------------------------------------ - -A kartya LED-jeinek jelentese: - -piros - eg, ha Remote Alarm-ot kuld a tuloldal -zold - eg, ha a vett jelben megtalalja a keretszinkront - -Reszletesebben: - -piros: zold: jelentes: - -- - nincs keretszinkron (nincs jel, vagy rossz a jel) -- eg "minden rendben" -eg eg a vetel OK, de a tuloldal Remote Alarm-ot kuld -eg - ez nincs ertelmezve, egyelore funkcio nelkul - ------------------------------------------------------------------ - -Reszletesebb leiras a hardver beallitasi lehetosegeirol: - -Az altalanos,- es a protokoll-retegek beallitasi lehetosegeirol a 'comx.txt' -fajlban leirtak SliceCOM kartyanal is ervenyesek, itt csak a hardver-specifikus -beallitasi lehetosegek vannak osszefoglalva: - -Konfiguralasi interfesz a /proc/comx/ alatt: - -Minden timeslot-csoportnak kulon comx* interfeszt kell letrehozni mkdir-rel: -comx0, comx1, .. stb. Itt beallithato, hogy az adott interfesz hanyadik kartya -melyik timeslotja(i)bol alljon ossze. A Cisco-fele serial3:1 elnevezesek -(serial3:1 = a 3. kartyaban az 1-es idoszelet-csoport) Linuxon aliasing-ot -jelentenenek, ezert mi nem tudunk ilyen elnevezest hasznalni. - -Tobb kartya eseten a comx0.1, comx0.2, ... vagy slice0.1, slice0.2 nevek -hasznalhatoak. - -Tobb SliceCOM kartya is lehet egy gepben, de sajat interrupt kell mindegyiknek, -nem tud meg megosztott interruptot kezelni. - -Az egesz kartyat erinto beallitasok: - -Az ioport es irq beallitas nincs: amit a PCI BIOS kioszt a rendszernek, -azt hasznalja a driver. - - -comx0/boardnum - hanyadik SliceCOM kartya a gepben (a 'termeszetes' PCI - sorrendben ertve: ahogyan a /proc/pci-ban vagy az 'lspci' - kimeneteben megjelenik, altalaban az alaplapi PCI meghajto - aramkorokhoz kozelebb eso kartyak a kisebb sorszamuak) - - Default: 0 (0-tol kezdodik a szamolas) - - -Bar a kovetkezoket csak egy-egy interfeszen allitjuk at, megis az egesz kartya -mukodeset egyszerre allitjak. A megkotes hogy csak UP-ban levo interfeszen -hasznalhatoak, azert van, mert kulonben nem vart eredmenyekre vezetne egy ilyen -paranccsorozat: - - echo 0 >boardnum - echo internal >clock_source - echo 1 >boardnum - -- Ez a 0-s board clock_source-at allitana at. - -Ezek a beallitasok megmaradnak az osszes interfesz torlesekor, de torlodnek -a driver modul ki/betoltesekor. - - -comx0/clock_source - A Tx orajelforrasa, a Cisco-val hasonlatosra keszult. - Hasznalata: - - papaya:# echo line >/proc/comx/comx0/clock_source - papaya:# echo internal >/proc/comx/comx0/clock_source - - line - A Tx orajelet a vett adatfolyambol dekodolja, igyekszik - igazodni hozza. Ha nem lat orajelet az inputon, akkor - atall a sajat orajelgeneratorara. - internal - A Tx orajelet a sajat orajelgeneratora szolgaltatja. - - Default: line - - Normal osszeallitas eseten a tavkozlesi szolgaltato eszkoze - (pl. HDSL modem) adja az orajelet, ezert ez a default. - - -comx0/framing - A CRC4 ki/be kapcsolasa - - A CRC4: 16 PCM keretet (A PCM keret az, amibe a 32 darab 64 - kilobites csatorna van bemultiplexalva. Nem osszetevesztendo a HDLC - kerettel.) 2x8 -as csoportokra osztanak, es azokhoz 4-4 bites CRC-t - szamolnak. Elsosorban a vonal minosegenek a monitorozasara szolgal. - - papaya:~# echo crc4 >/proc/comx/comx0/framing - papaya:~# echo no-crc4 >/proc/comx/comx0/framing - - Default a 'crc4', a MATAV vonalak altalaban igy futnak. De ha nem - egyforma is a beallitas a vonal ket vegen, attol a forgalom altalaban - at tud menni. - - -comx0/linecode - A vonali kodolas beallitasa - - papaya:~# echo hdb3 >/proc/comx/comx0/linecode - papaya:~# echo ami >/proc/comx/comx0/linecode - - Default a 'hdb3', a MATAV vonalak igy futnak. - - (az AMI kodolas igen ritka E1-es vonalaknal). Ha ez a beallitas nem - egyezik a vonal ket vegen, akkor elofordulhat hogy a keretszinkron - osszejon, de CRC4-hibak es a vonalakon atvitt adatokban is hibak - keletkeznek (amit a HDLC/SyncPPP szinten CRC-hibaval jelez) - - -comx0/reg - a kartya aramkoreinek, a MUNICH (reg) es a FALC (lbireg) -comx0/lbireg regisztereinek kozvetlen elerese. Hasznalata: - - echo >reg 0x04 0x0 - a 4-es regiszterbe 0-t ir - echo >reg 0x104 - printk()-val kiirja a 4-es regiszter - tartalmat a syslogba. - - WARNING: ezek csak a fejleszteshez keszultek, sok galibat - lehet veluk okozni! - - -comx0/loopback - A kartya G.703 jelenek a visszahurkolasara is van lehetoseg: - - papaya:# echo none >/proc/comx/comx0/loopback - papaya:# echo local >/proc/comx/comx0/loopback - papaya:# echo remote >/proc/comx/comx0/loopback - - none - nincs visszahurkolas, normal mukodes - local - a kartya a sajat maga altal adott jelet kapja vissza - remote - a kartya a kivulrol vett jelet adja kifele - - Default: none - ------------------------------------------------------------------ - -Az interfeszhez (Cisco terminologiaban 'channel-group') kapcsolodo beallitasok: - -comx0/timeslots - mely timeslotok (idoszeletek) tartoznak az adott interfeszhez. - - papaya:~# cat /proc/comx/comx0/timeslots - 1 3 4 5 6 - papaya:~# - - Egy timeslot megkeresese (hanyas interfeszbe tartozik nalunk): - - papaya:~# grep ' 4' /proc/comx/comx*/timeslots - /proc/comx/comx0/timeslots:1 3 4 5 6 - papaya:~# - - Beallitasa: - papaya:~# echo '1 5 2 6 7 8' >/proc/comx/comx0/timeslots - - A timeslotok sorrendje nem szamit, '1 3 2' ugyanaz mint az '1 2 3'. - - Beallitashoz az adott interfesznek DOWN-ban kell lennie - (ifconfig comx0 down), de ugyanannak a kartyanak a tobbi interfesze - uzemelhet kozben. - - Beallitaskor leellenorzi, hogy az uj timeslotok nem utkoznek-e egy - masik interfesz timeslotjaival. Ha utkoznek, akkor nem allitja at. - - Mindig 10-es szamrendszerben tortenik a timeslotok ertelmezese, nehogy - a 08, 09 alaku felirast rosszul ertelmezze. - ------------------------------------------------------------------ - -Az interfeszek es a kartya allapotanak lekerdezese: - -- A ' '-szel kezdodo sorok az eredeti kimenetet, a //-rel kezdodo sorok a -magyarazatot jelzik. - - papaya:~$ cat /proc/comx/comx1/status - Interface administrative status is UP, modem status is UP, protocol is UP - Modem status changes: 0, Transmitter status is IDLE, tbusy: 0 - Interface load (input): 978376 / 947808 / 951024 bits/s (5s/5m/15m) - (output): 978376 / 947848 / 951024 bits/s (5s/5m/15m) - Debug flags: none - RX errors: len: 22, overrun: 1, crc: 0, aborts: 0 - buffer overrun: 0, pbuffer overrun: 0 - TX errors: underrun: 0 - Line keepalive (value: 10) status UP [0] - -// Itt kezdodik a hardver-specifikus resz: - Controller status: - No alarms - -// Alarm: hibajelzes: -// -// No alarms - minden rendben -// -// LOS - Loss Of Signal - nem erzekel jelet a bemeneten. -// AIS - Alarm Indication Signal - csak egymas utani 1-esek jonnek -// a bemeneten, a tuloldal igy is jelezheti hogy meghibasodott vagy -// nincs inicializalva. -// AUXP - Auxiliary Pattern Indication - 01010101.. sorozat jon a bemeneten. -// LFA - Loss of Frame Alignment - nincs keretszinkron -// RRA - Receive Remote Alarm - a tuloldal el, de hibat jelez. -// LMFA - Loss of CRC4 Multiframe Alignment - nincs CRC4-multikeret-szinkron -// NMF - No Multiframe alignment Found after 400 msec - ilyen alarm a no-crc4 -// es crc4 keretezesek eseten nincs, lasd lentebb -// -// Egyeb lehetseges hibajelzesek: -// -// Transmit Line Short - a kartya ugy erzi hogy az adasi kimenete rovidre -// van zarva, ezert kikapcsolta az adast. (nem feltetlenul veszi eszre -// a kulso rovidzarat) - -// A veteli oldal csomagjainak lancolt listai, debug celokra: - - Rx ring: - rafutott: 0 - lastcheck: 50845731, jiffies: 51314281 - base: 017b1858 - rx_desc_ptr: 0 - rx_desc_ptr: 017b1858 - hw_curr_ptr: 017b1858 - 06040000 017b1868 017b1898 c016ff00 - 06040000 017b1878 017b1e9c c016ff00 - 46040000 017b1888 017b24a0 c016ff00 - 06040000 017b1858 017b2aa4 c016ff00 - -// A kartyat hasznalo tobbi interfesz: a 0-s channel-group a comx1 interfesz, -// es az 1,2,...,16 timeslotok tartoznak hozza: - - Interfaces using this board: (channel-group, interface, timeslots) - 0 comx1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 1 comx2: 17 - 2 comx3: 18 - 3 comx4: 19 - 4 comx5: 20 - 5 comx6: 21 - 6 comx7: 22 - 7 comx8: 23 - 8 comx9: 24 - 9 comx10: 25 - 10 comx11: 26 - 11 comx12: 27 - 12 comx13: 28 - 13 comx14: 29 - 14 comx15: 30 - 15 comx16: 31 - -// Hany esemenyt kezelt le a driver egy-egy hardver-interrupt kiszolgalasanal: - - Interrupt work histogram: - hist[ 0]: 0 hist[ 1]: 2 hist[ 2]: 18574 hist[ 3]: 79 - hist[ 4]: 14 hist[ 5]: 1 hist[ 6]: 0 hist[ 7]: 1 - hist[ 8]: 0 hist[ 9]: 7 - -// Hany kikuldendo csomag volt mar a Tx-ringben amikor ujabb lett irva bele: - - Tx ring histogram: - hist[ 0]: 2329 hist[ 1]: 0 hist[ 2]: 0 hist[ 3]: 0 - -// Az E1-interfesz hiba-szamlaloi, az rfc2495-nek megfeleloen: -// (kb. a Cisco routerek "show controllers e1" formatumaban: http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/rbook/rinterfc.htm#xtocid25669126) - -Data in current interval (91 seconds elapsed): - 9516 Line Code Violations, 65 Path Code Violations, 2 E-Bit Errors - 0 Slip Secs, 2 Fr Loss Secs, 2 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 11 Unavail Secs -Data in Interval 1 (15 minutes): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs -Data in last 4 intervals (1 hour): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs -Data in last 96 intervals (24 hours): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs - ------------------------------------------------------------------ - -Nehany kulonlegesebb beallitasi lehetoseg (idovel beepulhetnek majd a driverbe): -Ezekkel sok galibat lehet okozni, nagyon ovatosan kell oket hasznalni! - - modified CRC-4, for improved interworking of CRC-4 and non-CRC-4 - devices: (lasd page 107 es g706 Annex B) - lbireg[ 0x1b ] |= 0x08 - lbireg[ 0x1c ] |= 0xc0 - - ilyenkor ertelmezett az NMF - 'No Multiframe alignment Found after - 400 msec' alarm. - - FALC - a vonali meghajto IC - local loop - a sajat adasomat halljam vissza - remote loop - a kivulrol jovo adast adom vissza - - Egy hibakeresesre hasznalhato dolog: - - 1-es timeslot local loop a FALC-ban: echo >lbireg 0x1d 0x21 - - local loop kikapcsolasa: echo >lbireg 0x1d 0x00 diff --git a/trunk/Documentation/networking/slicecom.txt b/trunk/Documentation/networking/slicecom.txt deleted file mode 100644 index c82c0cf981b4..000000000000 --- a/trunk/Documentation/networking/slicecom.txt +++ /dev/null @@ -1,369 +0,0 @@ - -SliceCOM adapter user's documentation - for the 0.51 driver version - -Written by Bartók István - -English translation: Lakatos György -Mon Dec 11 15:28:42 CET 2000 - -Last modified: Wed Aug 29 17:25:37 CEST 2001 - ------------------------------------------------------------------ - -Usage: - -Compiling the kernel: - -Code maturity level options - [*] Prompt for development and/or incomplete code/drivers - -Network device support - Wan interfaces - MultiGate (COMX) synchronous - Support for MUNICH based boards: SliceCOM, PCICOM (NEW) - Support for HDLC and syncPPP... - - -Loading the modules: - -modprobe comx - -modprobe comx-proto-ppp # module for Cisco-HDLC and SyncPPP protocols - -modprobe comx-hw-munich # the module logs information by the kernel - # about the detected boards - - -Configuring the board: - -# This interface will use the Cisco-HDLC line protocol, -# the timeslices assigned are 1,2 (128 KiBit line speed) -# (the first data timeslice in the G.703 frame is no. 1) -# -mkdir /proc/comx/comx0.1/ -echo slicecom >/proc/comx/comx0.1/boardtype -echo hdlc >/proc/comx/comx0.1/protocol -echo 1 2 >/proc/comx/comx0.1/timeslots - - -# This interface uses SyncPPP line protocol, the assigned -# is no. 3 (64 KiBit line speed) -# -mkdir /proc/comx/comx0.2/ -echo slicecom >/proc/comx/comx0.2/boardtype -echo ppp >/proc/comx/comx0.2/protocol -echo 3 >/proc/comx/comx0.2/timeslots - -... - -ifconfig comx0.1 up -ifconfig comx0.2 up - ------------------------------------------------------------------ - -The COMX interfaces use a 10 packet transmit queue by default, however WAN -networks sometimes use bigger values (20 to 100), to utilize the line better -by large traffic (though the line delay increases because of more packets -join the queue). - -# ifconfig comx0 txqueuelen 50 - -This option is only supported by the ifconfig command of the later -distributions, which came with 2.2 kernels, such as RedHat 6.1 or Debian 2.2. - -You can download a newer netbase packet from -http://www.debian.org/~rcw/2.2/netbase/ for Debian 2.1, which has a new -ifconfig. You can get further information about using 2.2 kernel with -Debian 2.1 from http://www.debian.org/releases/stable/running-kernel-2.2 - ------------------------------------------------------------------ - -The SliceCom LEDs: - -red - on, if the interface is unconfigured, or it gets Remote Alarm-s -green - on, if the board finds frame-sync in the received signal - -A bit more detailed: - -red: green: meaning: - -- - no frame-sync, no signal received, or signal SNAFU. -- on "Everything is OK" -on on Reception is ok, but the remote end sends Remote Alarm -on - The interface is unconfigured - ------------------------------------------------------------------ - -A more detailed description of the hardware setting options: - -The general and the protocol layer options described in the 'comx.txt' file -apply to the SliceCom as well, I only summarize the SliceCom hardware specific -settings below. - -The '/proc/comx' configuring interface: - -An interface directory should be created for every timeslot group with -'mkdir', e,g: 'comx0', 'comx1' etc. The timeslots can be assigned here to the -specific interface. The Cisco-like naming convention (serial3:1 - first -timeslot group of the 3rd. board) can't be used here, because these mean IP -aliasing in Linux. - -You can give any meaningful name to keep the configuration clear; -e.g: 'comx0.1', 'comx0.2', 'comx1.1', comx1.2', if you have two boards -with two interfaces each. - -Settings, which apply to the board: - -Neither 'io' nor 'irq' settings required, the driver uses the resources -given by the PCI BIOS. - -comx0/boardnum - board number of the SliceCom in the PC (using the 'natural' - PCI order) as listed in '/proc/pci' or the output of the - 'lspci' command, generally the slots nearer to the motherboard - PCI driver chips have the lower numbers. - - Default: 0 (the counting starts with 0) - -Though the options below are to be set on a single interface, they apply to the -whole board. The restriction, to use them on 'UP' interfaces, is because the -command sequence below could lead to unpredictable results. - - # echo 0 >boardnum - # echo internal >clock_source - # echo 1 >boardnum - -The sequence would set the clock source of board 0. - -These settings will persist after all the interfaces are cleared, but are -cleared when the driver module is unloaded and loaded again. - -comx0/clock_source - source of the transmit clock - Usage: - - # echo line >/proc/comx/comx0/clock_source - # echo internal >/proc/comx/comx0/clock_source - - line - The Tx clock is being decoded if the input data stream, - if no clock seen on the input, then the board will use it's - own clock generator. - - internal - The Tx clock is supplied by the builtin clock generator. - - Default: line - - Normally, the telecommunication company's end device (the HDSL - modem) provides the Tx clock, that's why 'line' is the default. - -comx0/framing - Switching CRC4 off/on - - CRC4: 16 PCM frames (The 32 64Kibit channels are multiplexed into a - PCM frame, nothing to do with HDLC frames) are divided into 2x8 - groups, each group has a 4 bit CRC. - - # echo crc4 >/proc/comx/comx0/framing - # echo no-crc4 >/proc/comx/comx0/framing - - Default is 'crc4', the Hungarian MATAV lines behave like this. - The traffic generally passes if this setting on both ends don't match. - -comx0/linecode - Setting the line coding - - # echo hdb3 >/proc/comx/comx0/linecode - # echo ami >/proc/comx/comx0/linecode - - Default a 'hdb3', MATAV lines use this. - - (AMI coding is rarely used with E1 lines). Frame sync may occur, if - this setting doesn't match the other end's, but CRC4 and data errors - will come, which will result in CRC errors on HDLC/SyncPPP level. - -comx0/reg - direct access to the board's MUNICH (reg) and FALC (lbireg) -comx0/lbireg circuit's registers - - # echo >reg 0x04 0x0 - write 0 to register 4 - # echo >reg 0x104 - write the contents of register 4 with - printk() to syslog - -WARNING! These are only for development purposes, messing with this will - result much trouble! - -comx0/loopback - Places a loop to the board's G.703 signals - - # echo none >/proc/comx/comx0/loopback - # echo local >/proc/comx/comx0/loopback - # echo remote >/proc/comx/comx0/loopback - - none - normal operation, no loop - local - the board receives it's own output - remote - the board sends the received data to the remote side - - Default: none - ------------------------------------------------------------------ - -Interface (channel group in Cisco terms) settings: - -comx0/timeslots - which timeslots belong to the given interface - - Setting: - - # echo '1 5 2 6 7 8' >/proc/comx/comx0/timeslots - - # cat /proc/comx/comx0/timeslots - 1 2 5 6 7 8 - # - - Finding a timeslot: - - # grep ' 4' /proc/comx/comx*/timeslots - /proc/comx/comx0/timeslots:1 3 4 5 6 - # - - The timeslots can be in any order, '1 2 3' is the same as '1 3 2'. - - The interface has to be DOWN during the setting ('ifconfig comx0 - down'), but the other interfaces could operate normally. - - The driver checks if the assigned timeslots are vacant, if not, then - the setting won't be applied. - - The timeslot values are treated as decimal numbers, not to misunderstand - values of 08, 09 form. - ------------------------------------------------------------------ - -Checking the interface and board status: - -- Lines beginning with ' ' (space) belong to the original output, the lines -which begin with '//' are the comments. - - papaya:~$ cat /proc/comx/comx1/status - Interface administrative status is UP, modem status is UP, protocol is UP - Modem status changes: 0, Transmitter status is IDLE, tbusy: 0 - Interface load (input): 978376 / 947808 / 951024 bits/s (5s/5m/15m) - (output): 978376 / 947848 / 951024 bits/s (5s/5m/15m) - Debug flags: none - RX errors: len: 22, overrun: 1, crc: 0, aborts: 0 - buffer overrun: 0, pbuffer overrun: 0 - TX errors: underrun: 0 - Line keepalive (value: 10) status UP [0] - -// The hardware specific part starts here: - Controller status: - No alarms - -// Alarm: -// -// No alarms - Everything OK -// -// LOS - Loss Of Signal - No signal sensed on the input -// AIS - Alarm Indication Signal - The remote side sends '11111111'-s, -// it tells, that there's an error condition, or it's not -// initialised. -// AUXP - Auxiliary Pattern Indication - 01010101.. received. -// LFA - Loss of Frame Alignment - no frame sync received. -// RRA - Receive Remote Alarm - the remote end's OK, but signals error cond. -// LMFA - Loss of CRC4 Multiframe Alignment - no CRC4 multiframe sync. -// NMF - No Multiframe alignment Found after 400 msec - no such alarm using -// no-crc4 or crc4 framing, see below. -// -// Other possible error messages: -// -// Transmit Line Short - the board felt, that it's output is short-circuited, -// so it switched the transmission off. (The board can't definitely tell, -// that it's output is short-circuited.) - -// Chained list of the received packets, for debug purposes: - - Rx ring: - rafutott: 0 - lastcheck: 50845731, jiffies: 51314281 - base: 017b1858 - rx_desc_ptr: 0 - rx_desc_ptr: 017b1858 - hw_curr_ptr: 017b1858 - 06040000 017b1868 017b1898 c016ff00 - 06040000 017b1878 017b1e9c c016ff00 - 46040000 017b1888 017b24a0 c016ff00 - 06040000 017b1858 017b2aa4 c016ff00 - -// All the interfaces using the board: comx1, using the 1,2,...16 timeslots, -// comx2, using timeslot 17, etc. - - Interfaces using this board: (channel-group, interface, timeslots) - 0 comx1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - 1 comx2: 17 - 2 comx3: 18 - 3 comx4: 19 - 4 comx5: 20 - 5 comx6: 21 - 6 comx7: 22 - 7 comx8: 23 - 8 comx9: 24 - 9 comx10: 25 - 10 comx11: 26 - 11 comx12: 27 - 12 comx13: 28 - 13 comx14: 29 - 14 comx15: 30 - 15 comx16: 31 - -// The number of events handled by the driver during an interrupt cycle: - - Interrupt work histogram: - hist[ 0]: 0 hist[ 1]: 2 hist[ 2]: 18574 hist[ 3]: 79 - hist[ 4]: 14 hist[ 5]: 1 hist[ 6]: 0 hist[ 7]: 1 - hist[ 8]: 0 hist[ 9]: 7 - -// The number of packets to send in the Tx ring, when a new one arrived: - - Tx ring histogram: - hist[ 0]: 2329 hist[ 1]: 0 hist[ 2]: 0 hist[ 3]: 0 - -// The error counters of the E1 interface, according to the RFC2495, -// (similar to the Cisco "show controllers e1" command's output: -// http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/rbook/rinterfc.htm#xtocid25669126) - -Data in current interval (91 seconds elapsed): - 9516 Line Code Violations, 65 Path Code Violations, 2 E-Bit Errors - 0 Slip Secs, 2 Fr Loss Secs, 2 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 11 Unavail Secs -Data in Interval 1 (15 minutes): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs -Data in last 4 intervals (1 hour): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs -Data in last 96 intervals (24 hours): - 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors - 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins - 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs - ------------------------------------------------------------------ - -Some unique options, (may get into the driver later): -Treat them very carefully, these can cause much trouble! - - modified CRC-4, for improved interworking of CRC-4 and non-CRC-4 - devices: (see page 107 and g706 Annex B) - lbireg[ 0x1b ] |= 0x08 - lbireg[ 0x1c ] |= 0xc0 - - - The NMF - 'No Multiframe alignment Found after 400 msec' alarm - comes into account. - - FALC - the line driver chip. - local loop - I hear my transmission back. - remote loop - I echo the remote transmission back. - - Something useful for finding errors: - - - local loop for timeslot 1 in the FALC chip: - - # echo >lbireg 0x1d 0x21 - - - Switching the loop off: - - # echo >lbireg 0x1d 0x00 diff --git a/trunk/Documentation/nfsroot.txt b/trunk/Documentation/nfsroot.txt index 16a7cae2721d..31b329172343 100644 --- a/trunk/Documentation/nfsroot.txt +++ b/trunk/Documentation/nfsroot.txt @@ -92,8 +92,10 @@ ip=:::::: autoconfiguration. The parameter can appear alone as the value to the `ip' - parameter (without all the ':' characters before) in which case auto- - configuration is used. + parameter (without all the ':' characters before). If the value is + "ip=off" or "ip=none", no autoconfiguration will take place, otherwise + autoconfiguration will take place. The most common way to use this + is "ip=dhcp". IP address of the client. @@ -142,8 +144,10 @@ ip=:::::: into the kernel will be used, regardless of the value of this option. - off or none: don't use autoconfiguration (default) + off or none: don't use autoconfiguration + (do static IP assignment instead) on or any: use any protocol available in the kernel + (default) dhcp: use DHCP bootp: use BOOTP rarp: use RARP diff --git a/trunk/Documentation/parport-lowlevel.txt b/trunk/Documentation/parport-lowlevel.txt index 265fcdcb8e5f..120eb20dbb09 100644 --- a/trunk/Documentation/parport-lowlevel.txt +++ b/trunk/Documentation/parport-lowlevel.txt @@ -339,6 +339,10 @@ Use this function to register your device driver on a parallel port ('port'). Once you have done that, you will be able to use parport_claim and parport_release in order to use the port. +The ('name') argument is the name of the device that appears in /proc +filesystem. The string must be valid for the whole lifetime of the +device (until parport_unregister_device is called). + This function will register three callbacks into your driver: 'preempt', 'wakeup' and 'irq'. Each of these may be NULL in order to indicate that you do not want a callback. diff --git a/trunk/Documentation/powerpc/booting-without-of.txt b/trunk/Documentation/powerpc/booting-without-of.txt index a96e85397eb7..e9a3cb1d6b06 100644 --- a/trunk/Documentation/powerpc/booting-without-of.txt +++ b/trunk/Documentation/powerpc/booting-without-of.txt @@ -52,6 +52,7 @@ Table of Contents i) Freescale QUICC Engine module (QE) j) CFI or JEDEC memory-mapped NOR flash k) Global Utilities Block + l) Xilinx IP cores VII - Specifying interrupt information for devices 1) interrupts property @@ -851,12 +852,18 @@ address which can extend beyond that limit. /cpus/PowerPC,970FX@0 /cpus/PowerPC,970FX@1 (unit addresses do not require leading zeroes) - - d-cache-line-size : one cell, L1 data cache line size in bytes - - i-cache-line-size : one cell, L1 instruction cache line size in + - d-cache-block-size : one cell, L1 data cache block size in bytes (*) + - i-cache-block-size : one cell, L1 instruction cache block size in bytes - d-cache-size : one cell, size of L1 data cache in bytes - i-cache-size : one cell, size of L1 instruction cache in bytes +(*) The cache "block" size is the size on which the cache management +instructions operate. Historically, this document used the cache +"line" size here which is incorrect. The kernel will prefer the cache +block size and will fallback to cache line size for backward +compatibility. + Recommended properties: - timebase-frequency : a cell indicating the frequency of the @@ -870,6 +877,10 @@ address which can extend beyond that limit. for the above, the common code doesn't use that property, but you are welcome to re-use the pSeries or Maple one. A future kernel version might provide a common function for this. + - d-cache-line-size : one cell, L1 data cache line size in bytes + if different from the block size + - i-cache-line-size : one cell, L1 instruction cache line size in + bytes if different from the block size You are welcome to add any property you find relevant to your board, like some information about the mechanism used to soft-reset the @@ -1634,8 +1645,9 @@ platforms are moved over to use the flattened-device-tree model. MAC addresses passed by the firmware when no information other than indices is available to associate an address with a device. - phy-connection-type : a string naming the controller/PHY interface type, - i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id", "tbi", - or "rtbi". + i.e., "mii" (default), "rmii", "gmii", "rgmii", "rgmii-id" (Internal + Delay), "rgmii-txid" (delay on TX only), "rgmii-rxid" (delay on RX only), + "tbi", or "rtbi". Example: ucc@2000 { @@ -2242,6 +2254,266 @@ platforms are moved over to use the flattened-device-tree model. available. For Axon: 0x0000012a + l) Xilinx IP cores + + The Xilinx EDK toolchain ships with a set of IP cores (devices) for use + in Xilinx Spartan and Virtex FPGAs. The devices cover the whole range + of standard device types (network, serial, etc.) and miscellanious + devices (gpio, LCD, spi, etc). Also, since these devices are + implemented within the fpga fabric every instance of the device can be + synthesised with different options that change the behaviour. + + Each IP-core has a set of parameters which the FPGA designer can use to + control how the core is synthesized. Historically, the EDK tool would + extract the device parameters relevant to device drivers and copy them + into an 'xparameters.h' in the form of #define symbols. This tells the + device drivers how the IP cores are configured, but it requres the kernel + to be recompiled every time the FPGA bitstream is resynthesized. + + The new approach is to export the parameters into the device tree and + generate a new device tree each time the FPGA bitstream changes. The + parameters which used to be exported as #defines will now become + properties of the device node. In general, device nodes for IP-cores + will take the following form: + + (name)@(base-address) { + compatible = "xlnx,(ip-core-name)-(HW_VER)" + [, (list of compatible devices), ...]; + reg = <(baseaddr) (size)>; + interrupt-parent = <&interrupt-controller-phandle>; + interrupts = < ... >; + xlnx,(parameter1) = "(string-value)"; + xlnx,(parameter2) = <(int-value)>; + }; + + (ip-core-name): the name of the ip block (given after the BEGIN + directive in system.mhs). Should be in lowercase + and all underscores '_' converted to dashes '-'. + (name): is derived from the "PARAMETER INSTANCE" value. + (parameter#): C_* parameters from system.mhs. The C_ prefix is + dropped from the parameter name, the name is converted + to lowercase and all underscore '_' characters are + converted to dashes '-'. + (baseaddr): the C_BASEADDR parameter. + (HW_VER): from the HW_VER parameter. + (size): equals C_HIGHADDR - C_BASEADDR + 1 + + Typically, the compatible list will include the exact IP core version + followed by an older IP core version which implements the same + interface or any other device with the same interface. + + 'reg', 'interrupt-parent' and 'interrupts' are all optional properties. + + For example, the following block from system.mhs: + + BEGIN opb_uartlite + PARAMETER INSTANCE = opb_uartlite_0 + PARAMETER HW_VER = 1.00.b + PARAMETER C_BAUDRATE = 115200 + PARAMETER C_DATA_BITS = 8 + PARAMETER C_ODD_PARITY = 0 + PARAMETER C_USE_PARITY = 0 + PARAMETER C_CLK_FREQ = 50000000 + PARAMETER C_BASEADDR = 0xEC100000 + PARAMETER C_HIGHADDR = 0xEC10FFFF + BUS_INTERFACE SOPB = opb_7 + PORT OPB_Clk = CLK_50MHz + PORT Interrupt = opb_uartlite_0_Interrupt + PORT RX = opb_uartlite_0_RX + PORT TX = opb_uartlite_0_TX + PORT OPB_Rst = sys_bus_reset_0 + END + + becomes the following device tree node: + + opb-uartlite-0@ec100000 { + device_type = "serial"; + compatible = "xlnx,opb-uartlite-1.00.b"; + reg = ; + interrupt-parent = <&opb-intc>; + interrupts = <1 0>; // got this from the opb_intc parameters + current-speed = ; // standard serial device prop + clock-frequency = ; // standard serial device prop + xlnx,data-bits = <8>; + xlnx,odd-parity = <0>; + xlnx,use-parity = <0>; + }; + + Some IP cores actually implement 2 or more logical devices. In this case, + the device should still describe the whole IP core with a single node + and add a child node for each logical device. The ranges property can + be used to translate from parent IP-core to the registers of each device. + (Note: this makes the assumption that both logical devices have the same + bus binding. If this is not true, then separate nodes should be used for + each logical device). The 'cell-index' property can be used to enumerate + logical devices within an IP core. For example, the following is the + system.mhs entry for the dual ps2 controller found on the ml403 reference + design. + + BEGIN opb_ps2_dual_ref + PARAMETER INSTANCE = opb_ps2_dual_ref_0 + PARAMETER HW_VER = 1.00.a + PARAMETER C_BASEADDR = 0xA9000000 + PARAMETER C_HIGHADDR = 0xA9001FFF + BUS_INTERFACE SOPB = opb_v20_0 + PORT Sys_Intr1 = ps2_1_intr + PORT Sys_Intr2 = ps2_2_intr + PORT Clkin1 = ps2_clk_rx_1 + PORT Clkin2 = ps2_clk_rx_2 + PORT Clkpd1 = ps2_clk_tx_1 + PORT Clkpd2 = ps2_clk_tx_2 + PORT Rx1 = ps2_d_rx_1 + PORT Rx2 = ps2_d_rx_2 + PORT Txpd1 = ps2_d_tx_1 + PORT Txpd2 = ps2_d_tx_2 + END + + It would result in the following device tree nodes: + + opb_ps2_dual_ref_0@a9000000 { + ranges = <0 a9000000 2000>; + // If this device had extra parameters, then they would + // go here. + ps2@0 { + compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; + reg = <0 40>; + interrupt-parent = <&opb-intc>; + interrupts = <3 0>; + cell-index = <0>; + }; + ps2@1000 { + compatible = "xlnx,opb-ps2-dual-ref-1.00.a"; + reg = <1000 40>; + interrupt-parent = <&opb-intc>; + interrupts = <3 0>; + cell-index = <0>; + }; + }; + + Also, the system.mhs file defines bus attachments from the processor + to the devices. The device tree structure should reflect the bus + attachments. Again an example; this system.mhs fragment: + + BEGIN ppc405_virtex4 + PARAMETER INSTANCE = ppc405_0 + PARAMETER HW_VER = 1.01.a + BUS_INTERFACE DPLB = plb_v34_0 + BUS_INTERFACE IPLB = plb_v34_0 + END + + BEGIN opb_intc + PARAMETER INSTANCE = opb_intc_0 + PARAMETER HW_VER = 1.00.c + PARAMETER C_BASEADDR = 0xD1000FC0 + PARAMETER C_HIGHADDR = 0xD1000FDF + BUS_INTERFACE SOPB = opb_v20_0 + END + + BEGIN opb_uart16550 + PARAMETER INSTANCE = opb_uart16550_0 + PARAMETER HW_VER = 1.00.d + PARAMETER C_BASEADDR = 0xa0000000 + PARAMETER C_HIGHADDR = 0xa0001FFF + BUS_INTERFACE SOPB = opb_v20_0 + END + + BEGIN plb_v34 + PARAMETER INSTANCE = plb_v34_0 + PARAMETER HW_VER = 1.02.a + END + + BEGIN plb_bram_if_cntlr + PARAMETER INSTANCE = plb_bram_if_cntlr_0 + PARAMETER HW_VER = 1.00.b + PARAMETER C_BASEADDR = 0xFFFF0000 + PARAMETER C_HIGHADDR = 0xFFFFFFFF + BUS_INTERFACE SPLB = plb_v34_0 + END + + BEGIN plb2opb_bridge + PARAMETER INSTANCE = plb2opb_bridge_0 + PARAMETER HW_VER = 1.01.a + PARAMETER C_RNG0_BASEADDR = 0x20000000 + PARAMETER C_RNG0_HIGHADDR = 0x3FFFFFFF + PARAMETER C_RNG1_BASEADDR = 0x60000000 + PARAMETER C_RNG1_HIGHADDR = 0x7FFFFFFF + PARAMETER C_RNG2_BASEADDR = 0x80000000 + PARAMETER C_RNG2_HIGHADDR = 0xBFFFFFFF + PARAMETER C_RNG3_BASEADDR = 0xC0000000 + PARAMETER C_RNG3_HIGHADDR = 0xDFFFFFFF + BUS_INTERFACE SPLB = plb_v34_0 + BUS_INTERFACE MOPB = opb_v20_0 + END + + Gives this device tree (some properties removed for clarity): + + plb-v34-0 { + #address-cells = <1>; + #size-cells = <1>; + device_type = "ibm,plb"; + ranges; // 1:1 translation + + plb-bram-if-cntrl-0@ffff0000 { + reg = ; + } + + opb-v20-0 { + #address-cells = <1>; + #size-cells = <1>; + ranges = <20000000 20000000 20000000 + 60000000 60000000 20000000 + 80000000 80000000 40000000 + c0000000 c0000000 20000000>; + + opb-uart16550-0@a0000000 { + reg = ; + }; + + opb-intc-0@d1000fc0 { + reg = ; + }; + }; + }; + + That covers the general approach to binding xilinx IP cores into the + device tree. The following are bindings for specific devices: + + i) Xilinx ML300 Framebuffer + + Simple framebuffer device from the ML300 reference design (also on the + ML403 reference design as well as others). + + Optional properties: + - resolution = : pixel resolution of framebuffer. Some + implementations use a different resolution. + Default is + - virt-resolution = : Size of framebuffer in memory. + Default is . + - rotate-display (empty) : rotate display 180 degrees. + + ii) Xilinx SystemACE + + The Xilinx SystemACE device is used to program FPGAs from an FPGA + bitstream stored on a CF card. It can also be used as a generic CF + interface device. + + Optional properties: + - 8-bit (empty) : Set this property for SystemACE in 8 bit mode + + iii) Xilinx EMAC and Xilinx TEMAC + + Xilinx Ethernet devices. In addition to general xilinx properties + listed above, nodes for these devices should include a phy-handle + property, and may include other common network device properties + like local-mac-address. + + iv) Xilinx Uartlite + + Xilinx uartlite devices are simple fixed speed serial ports. + + Requred properties: + - current-speed : Baud rate of uartlite + More devices will be defined as this spec matures. VII - Specifying interrupt information for devices diff --git a/trunk/Documentation/rtc.txt b/trunk/Documentation/rtc.txt index c931d613f641..e20b19c1b60d 100644 --- a/trunk/Documentation/rtc.txt +++ b/trunk/Documentation/rtc.txt @@ -180,9 +180,10 @@ driver returns ENOIOCTLCMD. Some common examples: * RTC_IRQP_SET, RTC_IRQP_READ: the irq_set_freq function will be called to set the frequency while the framework will handle the read for you since the frequency is stored in the irq_freq member of the rtc_device - structure. Also make sure you set the max_user_freq member in your - initialization routines so the framework can sanity check the user - input for you. + structure. Your driver needs to initialize the irq_freq member during + init. Make sure you check the requested frequency is in range of your + hardware in the irq_set_freq function. If you cannot actually change + the frequency, just return -ENOTTY. If all else fails, check out the rtc-test.c driver! diff --git a/trunk/Documentation/scsi/link_power_management_policy.txt b/trunk/Documentation/scsi/link_power_management_policy.txt new file mode 100644 index 000000000000..d18993d01884 --- /dev/null +++ b/trunk/Documentation/scsi/link_power_management_policy.txt @@ -0,0 +1,19 @@ +This parameter allows the user to set the link (interface) power management. +There are 3 possible options: + +Value Effect +---------------------------------------------------------------------------- +min_power Tell the controller to try to make the link use the + least possible power when possible. This may + sacrifice some performance due to increased latency + when coming out of lower power states. + +max_performance Generally, this means no power management. Tell + the controller to have performance be a priority + over power management. + +medium_power Tell the controller to enter a lower power state + when possible, but do not enter the lowest power + state, thus improving latency over min_power setting. + + diff --git a/trunk/Documentation/sysctl/vm.txt b/trunk/Documentation/sysctl/vm.txt index b89570c30434..6f31f0a247d0 100644 --- a/trunk/Documentation/sysctl/vm.txt +++ b/trunk/Documentation/sysctl/vm.txt @@ -34,6 +34,8 @@ Currently, these files are in /proc/sys/vm: - oom_kill_allocating_task - mmap_min_address - numa_zonelist_order +- nr_hugepages +- nr_overcommit_hugepages ============================================================== @@ -305,3 +307,20 @@ will select "node" order in following case. Otherwise, "zone" order will be selected. Default order is recommended unless this is causing problems for your system/application. + +============================================================== + +nr_hugepages + +Change the minimum size of the hugepage pool. + +See Documentation/vm/hugetlbpage.txt + +============================================================== + +nr_overcommit_hugepages + +Change the maximum size of the hugepage pool. The maximum is +nr_hugepages + nr_overcommit_hugepages. + +See Documentation/vm/hugetlbpage.txt diff --git a/trunk/Documentation/thinkpad-acpi.txt b/trunk/Documentation/thinkpad-acpi.txt index ec499265deca..10c041ca13c7 100644 --- a/trunk/Documentation/thinkpad-acpi.txt +++ b/trunk/Documentation/thinkpad-acpi.txt @@ -1,7 +1,7 @@ ThinkPad ACPI Extras Driver - Version 0.16 - August 2nd, 2007 + Version 0.17 + October 04th, 2007 Borislav Deianov Henrique de Moraes Holschuh @@ -923,19 +923,34 @@ sysfs backlight device "thinkpad_screen" This feature allows software control of the LCD brightness on ThinkPad models which don't have a hardware brightness slider. -It has some limitations: the LCD backlight cannot be actually turned on or off -by this interface, and in many ThinkPad models, the "dim while on battery" -functionality will be enabled by the BIOS when this interface is used, and -cannot be controlled. - -The backlight control has eight levels, ranging from 0 to 7. Some of the -levels may not be distinct. - -There are two interfaces to the firmware for brightness control, EC and CMOS. -To select which one should be used, use the brightness_mode module parameter: -brightness_mode=1 selects EC mode, brightness_mode=2 selects CMOS mode, -brightness_mode=3 selects both EC and CMOS. The driver tries to autodetect -which interface to use. +It has some limitations: the LCD backlight cannot be actually turned on or +off by this interface, and in many ThinkPad models, the "dim while on +battery" functionality will be enabled by the BIOS when this interface is +used, and cannot be controlled. + +On IBM (and some of the earlier Lenovo) ThinkPads, the backlight control +has eight brightness levels, ranging from 0 to 7. Some of the levels +may not be distinct. Later Lenovo models that implement the ACPI +display backlight brightness control methods have 16 levels, ranging +from 0 to 15. + +There are two interfaces to the firmware for direct brightness control, +EC and CMOS. To select which one should be used, use the +brightness_mode module parameter: brightness_mode=1 selects EC mode, +brightness_mode=2 selects CMOS mode, brightness_mode=3 selects both EC +and CMOS. The driver tries to autodetect which interface to use. + +When display backlight brightness controls are available through the +standard ACPI interface, it is best to use it instead of this direct +ThinkPad-specific interface. The driver will disable its native +backlight brightness control interface if it detects that the standard +ACPI interface is available in the ThinkPad. + +The brightness_enable module parameter can be used to control whether +the LCD brightness control feature will be enabled when available. +brightness_enable=0 forces it to be disabled. brightness_enable=1 +forces it to be enabled when available, even if the standard ACPI +interface is also available. Procfs notes: @@ -947,11 +962,11 @@ Procfs notes: Sysfs notes: -The interface is implemented through the backlight sysfs class, which is poorly -documented at this time. +The interface is implemented through the backlight sysfs class, which is +poorly documented at this time. -Locate the thinkpad_screen device under /sys/class/backlight, and inside it -there will be the following attributes: +Locate the thinkpad_screen device under /sys/class/backlight, and inside +it there will be the following attributes: max_brightness: Reads the maximum brightness the hardware can be set to. @@ -961,17 +976,19 @@ there will be the following attributes: Reads what brightness the screen is set to at this instant. brightness: - Writes request the driver to change brightness to the given - value. Reads will tell you what brightness the driver is trying - to set the display to when "power" is set to zero and the display - has not been dimmed by a kernel power management event. + Writes request the driver to change brightness to the + given value. Reads will tell you what brightness the + driver is trying to set the display to when "power" is set + to zero and the display has not been dimmed by a kernel + power management event. power: - power management mode, where 0 is "display on", and 1 to 3 will - dim the display backlight to brightness level 0 because - thinkpad-acpi cannot really turn the backlight off. Kernel - power management events can temporarily increase the current - power management level, i.e. they can dim the display. + power management mode, where 0 is "display on", and 1 to 3 + will dim the display backlight to brightness level 0 + because thinkpad-acpi cannot really turn the backlight + off. Kernel power management events can temporarily + increase the current power management level, i.e. they can + dim the display. Volume control -- /proc/acpi/ibm/volume diff --git a/trunk/Documentation/tipar.txt b/trunk/Documentation/tipar.txt deleted file mode 100644 index 67133baef6ef..000000000000 --- a/trunk/Documentation/tipar.txt +++ /dev/null @@ -1,93 +0,0 @@ - - Parallel link cable for Texas Instruments handhelds - =================================================== - - -Author: Romain Lievin -Homepage: http://lpg.ticalc.org/prj_tidev/index.html - - -INTRODUCTION: - -This is a driver for the very common home-made parallel link cable, a cable -designed for connecting TI8x/9x graphing calculators (handhelds) to a computer -or workstation (Alpha, Sparc). Given that driver is built on parport, the -parallel port abstraction layer, this driver is architecture-independent. - -It can also be used with another device plugged on the same port (such as a -ZIP drive). I have a 100MB ZIP and both of them work fine! - -If you need more information, please visit the 'TI drivers' homepage at the URL -above. - -WHAT YOU NEED: - -A TI calculator and a program capable of communicating with your calculator. - -TiLP will work for sure (since I am its developer!). yal92 may be able to use -it by changing tidev for tipar (may require some hacking...). - -HOW TO USE IT: - -You must have first compiled parport support (CONFIG_PARPORT_DEV): either -compiled in your kernel, either as a module. - -Next, (as root): - - modprobe parport - modprobe tipar - -If it is not already there (it usually is), create the device: - - mknod /dev/tipar0 c 115 0 - mknod /dev/tipar1 c 115 1 - mknod /dev/tipar2 c 115 2 - -You will have to set permissions on this device to allow you to read/write -from it: - - chmod 666 /dev/tipar[0..2] - -Now you are ready to run a linking program such as TiLP. Be sure to configure -it properly (RTFM). - -MODULE PARAMETERS: - - You can set these with: modprobe tipar NAME=VALUE - There is currently no way to set these on a per-cable basis. - - NAME: timeout - TYPE: integer - DEFAULT: 15 - DESC: Timeout value in tenth of seconds. If no data is available once this - time has expired then the driver will return with a timeout error. - - NAME: delay - TYPE: integer - DEFAULT: 10 - DESC: Inter-bit delay in micro-seconds. A lower value gives an higher data - rate but makes transmission less reliable. - -These parameters can be changed at run time by any program via ioctl(2) calls -as listed in ./include/linux/ticable.h. - -Rather than write 50 pages describing the ioctl() and so on, it is -perhaps more useful you look at ticables library (dev_link.c) that demonstrates -how to use them, and demonstrates the features of the driver. This is -probably a lot more useful to people interested in writing applications -that will be using this driver. - -QUIRKS/BUGS: - -None. - -HOW TO CONTACT US: - -You can email me at roms@lpg.ticalc.org. Please prefix the subject line -with "TIPAR: " so that I am certain to notice your message. -You can also mail JB at jb@jblache.org. He packaged these drivers for Debian. - -CREDITS: - -The code is based on tidev.c & parport.c. -The driver has been developed independently of Texas Instruments. diff --git a/trunk/Documentation/tty.txt b/trunk/Documentation/tty.txt index 048a8762cfb5..8e65c4498c52 100644 --- a/trunk/Documentation/tty.txt +++ b/trunk/Documentation/tty.txt @@ -132,6 +132,14 @@ set_termios() Notify the tty driver that the device's termios tty->termios. Previous settings should be passed in the "old" argument. + The API is defined such that the driver should return + the actual modes selected. This means that the + driver function is responsible for modifying any + bits in the request it cannot fulfill to indicate + the actual modes being used. A device with no + hardware capability for change (eg a USB dongle or + virtual port) can provide NULL for this method. + throttle() Notify the tty driver that input buffers for the line discipline are close to full, and it should somehow signal that no more characters should be diff --git a/trunk/Documentation/usb/power-management.txt b/trunk/Documentation/usb/power-management.txt index 97842deec471..b2fc4d4a9917 100644 --- a/trunk/Documentation/usb/power-management.txt +++ b/trunk/Documentation/usb/power-management.txt @@ -278,6 +278,14 @@ optional. The methods' jobs are quite simple: (although the interfaces will be in the same altsettings as before the suspend). +If the device is disconnected or powered down while it is suspended, +the disconnect method will be called instead of the resume or +reset_resume method. This is also quite likely to happen when +waking up from hibernation, as many systems do not maintain suspend +current to the USB host controllers during hibernation. (It's +possible to work around the hibernation-forces-disconnect problem by +using the USB Persist facility.) + The reset_resume method is used by the USB Persist facility (see Documentation/usb/persist.txt) and it can also be used under certain circumstances when CONFIG_USB_PERSIST is not enabled. Currently, if a diff --git a/trunk/Documentation/video4linux/CARDLIST.em28xx b/trunk/Documentation/video4linux/CARDLIST.em28xx index a3026689bbe6..37f0e3cedf43 100644 --- a/trunk/Documentation/video4linux/CARDLIST.em28xx +++ b/trunk/Documentation/video4linux/CARDLIST.em28xx @@ -8,4 +8,7 @@ 7 -> Leadtek Winfast USB II (em2800) 8 -> Kworld USB2800 (em2800) 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] + 10 -> Hauppauge WinTV HVR 900 (em2880) + 11 -> Terratec Hybrid XS (em2880) 12 -> Kworld PVR TV 2800 RF (em2820/em2840) + 13 -> Terratec Prodigy XS (em2880) diff --git a/trunk/Documentation/vm/hugetlbpage.txt b/trunk/Documentation/vm/hugetlbpage.txt index 51ccc48aa763..f962d01bea2a 100644 --- a/trunk/Documentation/vm/hugetlbpage.txt +++ b/trunk/Documentation/vm/hugetlbpage.txt @@ -30,9 +30,10 @@ alignment and size of the arguments to the above system calls. The output of "cat /proc/meminfo" will have lines like: ..... -HugePages_Total: xxx -HugePages_Free: yyy -HugePages_Rsvd: www +HugePages_Total: vvv +HugePages_Free: www +HugePages_Rsvd: xxx +HugePages_Surp: yyy Hugepagesize: zzz kB where: @@ -42,6 +43,10 @@ allocated. HugePages_Rsvd is short for "reserved," and is the number of hugepages for which a commitment to allocate from the pool has been made, but no allocation has yet been made. It's vaguely analogous to overcommit. +HugePages_Surp is short for "surplus," and is the number of hugepages in +the pool above the value in /proc/sys/vm/nr_hugepages. The maximum +number of surplus hugepages is controlled by +/proc/sys/vm/nr_overcommit_hugepages. /proc/filesystems should also show a filesystem of type "hugetlbfs" configured in the kernel. @@ -71,7 +76,25 @@ or failure of allocation depends on the amount of physically contiguous memory that is preset in system at this time. System administrators may want to put this command in one of the local rc init files. This will enable the kernel to request huge pages early in the boot process (when the possibility -of getting physical contiguous pages is still very high). +of getting physical contiguous pages is still very high). In either +case, adminstrators will want to verify the number of hugepages actually +allocated by checking the sysctl or meminfo. + +/proc/sys/vm/nr_overcommit_hugepages indicates how large the pool of +hugepages can grow, if more hugepages than /proc/sys/vm/nr_hugepages are +requested by applications. echo'ing any non-zero value into this file +indicates that the hugetlb subsystem is allowed to try to obtain +hugepages from the buddy allocator, if the normal pool is exhausted. As +these surplus hugepages go out of use, they are freed back to the buddy +allocator. + +Caveat: Shrinking the pool via nr_hugepages while a surplus is in effect +will allow the number of surplus huge pages to exceed the overcommit +value, as the pool hugepages (which must have been in use for a surplus +hugepages to be allocated) will become surplus hugepages. As long as +this condition holds, however, no more surplus huge pages will be +allowed on the system until one of the two sysctls are increased +sufficiently, or the surplus huge pages go out of use and are freed. If the user applications are going to request hugepages using mmap system call, then it is required that system administrator mount a file system of @@ -94,8 +117,8 @@ provided on command line then no limits are set. For size and nr_inodes options, you can use [G|g]/[M|m]/[K|k] to represent giga/mega/kilo. For example, size=2K has the same meaning as size=2048. -read and write system calls are not supported on files that reside on hugetlb -file systems. +While read system calls are supported on files that reside on hugetlb +file systems, write system calls are not. Regular chown, chgrp, and chmod commands (with right permissions) could be used to change the file attributes on hugetlbfs. diff --git a/trunk/Documentation/x86_64/uefi.txt b/trunk/Documentation/x86_64/uefi.txt new file mode 100644 index 000000000000..91a98edfb588 --- /dev/null +++ b/trunk/Documentation/x86_64/uefi.txt @@ -0,0 +1,29 @@ +General note on [U]EFI x86_64 support +------------------------------------- + +The nomenclature EFI and UEFI are used interchangeably in this document. + +Although the tools below are _not_ needed for building the kernel, +the needed bootloader support and associated tools for x86_64 platforms +with EFI firmware and specifications are listed below. + +1. UEFI specification: http://www.uefi.org + +2. Booting Linux kernel on UEFI x86_64 platform requires bootloader + support. Elilo with x86_64 support can be used. + +3. x86_64 platform with EFI/UEFI firmware. + +Mechanics: +--------- +- Build the kernel with the following configuration. + CONFIG_FB_EFI=y + CONFIG_FRAMEBUFFER_CONSOLE=y +- Create a VFAT partition on the disk +- Copy the following to the VFAT partition: + elilo bootloader with x86_64 support, elilo configuration file, + kernel image built in first step and corresponding + initrd. Instructions on building elilo and its dependencies + can be found in the elilo sourceforge project. +- Boot to EFI shell and invoke elilo choosing the kernel image built + in first step. diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 892afcb81f30..2340cfb1e25d 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -88,7 +88,6 @@ S: Status, one of the following: P: Mike Phillips M: mikep@linuxtr.net L: netdev@vger.kernel.org -L: linux-tr@linuxtr.net W: http://www.linuxtr.net S: Maintained @@ -167,7 +166,6 @@ S: Maintained A2232 SERIAL BOARD DRIVER P: Enver Haase -M: ehaase@inf.fu-berlin.de M: A2232@gmx.net L: linux-m68k@lists.linux-m68k.org S: Maintained @@ -216,7 +214,7 @@ P: Len Brown M: len.brown@intel.com M: lenb@kernel.org L: linux-acpi@vger.kernel.org -W: http://acpi.sourceforge.net/ +W: http://www.lesswatts.org/projects/acpi/ T: git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git S: Supported @@ -235,8 +233,8 @@ W: http://acpi.sourceforge.net/ S: Supported ACPI FAN DRIVER -P: Konstantin A. Karasyov -M: konstantin.a.karasyov@intel.com +P: Len Brown +M: len.brown@intel.com L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported @@ -248,15 +246,15 @@ L: pcihpd-discuss@lists.sourceforge.net S: Supported ACPI THERMAL DRIVER -P: Konstantin A. Karasyov -M: konstantin.a.karasyov@intel.com +P: Len Brown +M: len.brown@intel.com L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported ACPI VIDEO DRIVER -P: Luming Yu -M: luming.yu@intel.com +P: Rui Zhang +M: rui.zhang@intel.com L: linux-acpi@vger.kernel.org W: http://acpi.sourceforge.net/ S: Supported @@ -323,8 +321,7 @@ S: Maintained ALCATEL SPEEDTOUCH USB DRIVER P: Duncan Sands M: duncan.sands@free.fr -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.linux-usb.org/SpeedTouch/ S: Maintained @@ -668,12 +665,18 @@ S: Maintained ATMEL AT91 MCI DRIVER P: Nicolas Ferre -M: nicolas.ferre@rfo.atmel.com +M: nicolas.ferre@atmel.com L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) W: http://www.atmel.com/products/AT91/ W: http://www.at91.com/ S: Maintained +ATMEL LCDFB DRIVER +P: Nicolas Ferre +M: nicolas.ferre@atmel.com +L: linux-fbdev-devel@lists.sourceforge.net (subscribers-only) +S: Maintained + ATMEL MACB ETHERNET DRIVER P: Haavard Skinnemoen M: hskinnemoen@atmel.com @@ -787,23 +790,25 @@ B43 WIRELESS DRIVER P: Michael Buesch M: mb@bu3sch.de P: Stefano Brivio -M: st3@riseup.net +M: stefano.brivio@polimi.it L: linux-wireless@vger.kernel.org -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained B43LEGACY WIRELESS DRIVER P: Larry Finger M: Larry.Finger@lwfinger.net +P: Stefano Brivio +M: stefano.brivio@polimi.it L: linux-wireless@vger.kernel.org -W: http://bcm43xx.berlios.de/ +W: http://linuxwireless.org/en/users/Drivers/b43 S: Maintained BCM43XX WIRELESS DRIVER (SOFTMAC BASED VERSION) P: Larry Finger M: Larry.Finger@lwfinger.net P: Stefano Brivio -M: st3@riseup.net +M: stefano.brivio@polimi.it L: linux-wireless@vger.kernel.org W: http://bcm43xx.berlios.de/ S: Maintained @@ -1041,7 +1046,7 @@ S: Maintained CIRRUS LOGIC EP93XX OHCI USB HOST DRIVER P: Lennert Buytenhek M: kernel@wantstofly.org -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained CIRRUS LOGIC CS4280/CS461x SOUNDDRIVER @@ -1550,7 +1555,7 @@ S: Maintained FREESCALE HIGHSPEED USB DEVICE DRIVER P: Li Yang M: leoli@freescale.com -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: linuxppc-dev@ozlabs.org S: Maintained @@ -1680,8 +1685,7 @@ S: Maintained HARMONY SOUND DRIVER P: Kyle McMartin M: kyle@parisc-linux.org -W: http://www.parisc-linux.org/~kyle/harmony/ -L: parisc-linux@lists.parisc-linux.org +L: linux-parisc@vger.kernel.org S: Maintained HAYES ESP SERIAL DRIVER @@ -1872,8 +1876,10 @@ T: quilt kernel.org/pub/linux/kernel/people/bart/pata-2.6/ S: Maintained IDE/ATAPI CDROM DRIVER +P: Borislav Petkov +M: bbpetkov@yahoo.de L: linux-ide@vger.kernel.org -S: Unmaintained +S: Maintained IDE/ATAPI FLOPPY DRIVERS P: Paul Bristow @@ -1912,16 +1918,14 @@ L: linux1394-devel@lists.sourceforge.net S: Maintained IMS TWINTURBO FRAMEBUFFER DRIVER -P: Paul Mundt -M: lethal@chaoticdreams.org L: linux-fbdev-devel@lists.sourceforge.net (subscribers-only) -S: Maintained +S: Orphan INFINIBAND SUBSYSTEM P: Roland Dreier M: rolandd@cisco.com P: Sean Hefty -M: mshefty@ichips.intel.com +M: sean.hefty@intel.com P: Hal Rosenstock M: hal.rosenstock@gmail.com L: general@lists.openfabrics.org @@ -1986,29 +1990,27 @@ L: netdev@vger.kernel.org S: Maintained INTEL PRO/100 ETHERNET SUPPORT -P: John Ronciak -M: john.ronciak@intel.com +P: Auke Kok +M: auke-jan.h.kok@intel.com P: Jesse Brandeburg M: jesse.brandeburg@intel.com P: Jeff Kirsher M: jeffrey.t.kirsher@intel.com -P: Auke Kok -M: auke-jan.h.kok@intel.com +P: John Ronciak +M: john.ronciak@intel.com L: e1000-devel@lists.sourceforge.net W: http://sourceforge.net/projects/e1000/ S: Supported INTEL PRO/1000 GIGABIT ETHERNET SUPPORT -P: Jeb Cramer -M: cramerj@intel.com -P: John Ronciak -M: john.ronciak@intel.com +P: Auke Kok +M: auke-jan.h.kok@intel.com P: Jesse Brandeburg M: jesse.brandeburg@intel.com P: Jeff Kirsher M: jeffrey.t.kirsher@intel.com -P: Auke Kok -M: auke-jan.h.kok@intel.com +P: John Ronciak +M: john.ronciak@intel.com L: e1000-devel@lists.sourceforge.net W: http://sourceforge.net/projects/e1000/ S: Supported @@ -2033,7 +2035,7 @@ P: James Ketrenos M: jketreno@linux.intel.com L: linux-wireless@vger.kernel.org L: ipw2100-devel@lists.sourceforge.net -L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel +W: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel W: http://ipw2100.sourceforge.net S: Supported @@ -2044,7 +2046,7 @@ P: James Ketrenos M: jketreno@linux.intel.com L: linux-wireless@vger.kernel.org L: ipw2100-devel@lists.sourceforge.net -L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel +W: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel W: http://ipw2200.sourceforge.net S: Supported @@ -2066,7 +2068,7 @@ S: Maintained IOC3 SERIAL DRIVER P: Pat Gefre M: pfg@sgi.com -L: linux-kernel@linux-mips.org +L: linux-mips@linux-mips.org S: Maintained IP MASQUERADING: @@ -2111,6 +2113,14 @@ L: irda-users@lists.sourceforge.net (subscribers-only) W: http://irda.sourceforge.net/ S: Maintained +ISCSI +P: Mike Christie +M: michaelc@cs.wisc.edu +L: open-iscsi@googlegroups.com +W: www.open-iscsi.org +T: git kernel.org:/pub/scm/linux/kernel/mnc/linux-2.6-iscsi.git +S: Maintained + ISAPNP P: Jaroslav Kysela M: perex@perex.cz @@ -2166,7 +2176,7 @@ S: Maintained KDUMP P: Vivek Goyal -M: vgoyal@in.ibm.com +M: vgoyal@redhat.com P: Haren Myneni M: hbabu@us.ibm.com L: kexec@lists.infradead.org @@ -2444,7 +2454,7 @@ M68K ON APPLE MACINTOSH P: Joshua Thompson M: funaho@jurai.org W: http://www.mac.linux-m68k.org/ -L: linux-mac68k@mac.linux-m68k.org +L: linux-m68k@lists.linux-m68k.org S: Maintained M68K ON HP9000/300 @@ -2485,6 +2495,12 @@ M: mtk.manpages@gmail.com W: ftp://ftp.kernel.org/pub/linux/docs/manpages S: Maintained +MARVELL LIBERTAS WIRELESS DRIVER +P: Dan Williams +M: dcbw@redhat.com +L: libertas-dev@lists.infradead.org +S: Maintained + MARVELL MV643XX ETHERNET DRIVER P: Dale Farnsworth M: dale@farnsworth.org @@ -2549,7 +2565,7 @@ S: Supported MISCELLANEOUS MCA-SUPPORT P: James Bottomley -M: jejb@steeleye.com +M: James.Bottomley@HansenPartnership.com L: linux-kernel@vger.kernel.org S: Maintained @@ -2587,17 +2603,10 @@ S: Maintained MSI LAPTOP SUPPORT P: Lennart Poettering M: mzxreary@0pointer.de -L: https://tango.0pointer.de/mailman/listinfo/s270-linux +W: https://tango.0pointer.de/mailman/listinfo/s270-linux W: http://0pointer.de/lennart/tchibo.html S: Maintained -MTRR AND SIMILAR SUPPORT [i386] -P: Richard Gooch -M: rgooch@atnf.csiro.au -L: linux-kernel@vger.kernel.org -W: http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html -S: Maintained - MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM P: Pierre Ossman M: drzeus-mmc@drzeus.cx @@ -2736,8 +2745,8 @@ T: git kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6.git S: Maintained NETXEN (1/10) GbE SUPPORT -P: Amit S. Kale -M: amitkale@netxen.com +P: Dhananjay Phadke +M: dhananjay@netxen.com L: netdev@vger.kernel.org W: http://www.netxen.com S: Supported @@ -2754,8 +2763,10 @@ S: Maintained NFS CLIENT P: Trond Myklebust -M: trond.myklebust@fys.uio.no -L: linux-kernel@vger.kernel.org +M: Trond.Myklebust@netapp.com +L: linux-nfs@vger.kernel.org +W: http://client.linux-nfs.org +T: git git://git.linux-nfs.org/pub/linux/nfs-2.6.git S: Maintained NI5010 NETWORK DRIVER @@ -2816,7 +2827,6 @@ M: p2@ace.ulyssis.student.kuleuven.ac.be P: Mike Phillips M: mikep@linuxtr.net L: netdev@vger.kernel.org -L: linux-tr@linuxtr.net W: http://www.linuxtr.net S: Maintained @@ -2890,16 +2900,15 @@ W: http://www.torque.net/linux-pp.html S: Maintained PARISC ARCHITECTURE +P: Kyle McMartin +M: kyle@parisc-linux.org P: Matthew Wilcox M: matthew@wil.cx P: Grant Grundler M: grundler@parisc-linux.org -P: Kyle McMartin -M: kyle@parisc-linux.org -L: parisc-linux@parisc-linux.org +L: linux-parisc@vger.kernel.org W: http://www.parisc-linux.org/ T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git -T: cvs cvs.parisc-linux.org:/var/cvs/linux-2.6 S: Maintained PARAVIRT_OPS INTERFACE @@ -2955,7 +2964,7 @@ S: Supported PCMCIA SUBSYSTEM P: Linux PCMCIA Team L: linux-pcmcia@lists.infradead.org -L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia +W: http://lists.infradead.org/mailman/listinfo/linux-pcmcia T: git kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git S: Maintained @@ -3301,9 +3310,11 @@ S: Maintained SCSI SUBSYSTEM P: James E.J. Bottomley -M: James.Bottomley@SteelEye.com +M: James.Bottomley@HansenPartnership.com L: linux-scsi@vger.kernel.org T: git kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git +T: git kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6.git +T: git kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-pending-2.6.git S: Maintained SCSI TAPE DRIVER @@ -3450,15 +3461,10 @@ L: lm-sensors@lm-sensors.org S: Maintained SOFTMAC LAYER (IEEE 802.11) -P: Johannes Berg -M: johannes@sipsolutions.net -P: Joe Jezak -M: josejx@gentoo.org P: Daniel Drake M: dsd@gentoo.org -W: http://softmac.sipsolutions.net/ L: linux-wireless@vger.kernel.org -S: Maintained +S: Obsolete SOFTWARE RAID (Multiple Disks) SUPPORT P: Ingo Molnar @@ -3477,12 +3483,14 @@ L: linux-pm@lists.linux-foundation.org S: Supported SUSPEND TO RAM: +P: Len Brown +M: len.brown@intel.com P: Pavel Machek M: pavel@suse.cz P: Rafael J. Wysocki M: rjw@sisk.pl L: linux-pm@lists.linux-foundation.org -S: Maintained +S: Supported SONIC NETWORK DRIVER P: Thomas Bogendoerfer @@ -3609,8 +3617,10 @@ L: linux-kernel@vger.kernel.org ? S: Supported SPIDERNET NETWORK DRIVER for CELL -P: Linas Vepstas -M: linas@austin.ibm.com +P: Ishizaki Kou +M: kou.ishizaki@toshiba.co.jp +P: Jens Osterkamp +M: jens@de.ibm.com L: netdev@vger.kernel.org S: Supported @@ -3635,18 +3645,12 @@ M: laredo@gnu.org W: http://www.stradis.com/ S: Maintained -SUPERH (sh) -P: Paul Mundt -M: lethal@linux-sh.org -L: linuxsh-dev@lists.sourceforge.net (subscribers-only) -W: http://www.linux-sh.org -S: Maintained - -SUPERH64 (sh64) +SUPERH P: Paul Mundt M: lethal@linux-sh.org -L: linuxsh-shmedia-dev@lists.sourceforge.net +L: linux-sh@vger.kernel.org W: http://www.linux-sh.org +T: git kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git S: Maintained SUN3/3X @@ -3711,11 +3715,6 @@ M: nagar@watson.ibm.com L: linux-kernel@vger.kernel.org S: Maintained -TI PARALLEL LINK CABLE DRIVER -P: Romain Lievin -M: roms@lpg.ticalc.org -S: Maintained - TIPC NETWORK LAYER P: Per Liden M: per.liden@ericsson.com @@ -3732,7 +3731,7 @@ S: Maintained TLAN NETWORK DRIVER P: Samuel Chessman M: chessman@tux.org -L: tlan-devel@lists.sourceforge.net +L: tlan-devel@lists.sourceforge.net (subscribers-only) W: http://sourceforge.net/projects/tlan/ S: Maintained @@ -3740,7 +3739,6 @@ TOKEN-RING NETWORK DRIVER P: Mike Phillips M: mikep@linuxtr.net L: netdev@vger.kernel.org -L: linux-tr@linuxtr.net W: http://www.linuxtr.net S: Maintained @@ -3817,22 +3815,20 @@ S: Maintained USB ACM DRIVER P: Oliver Neukum M: oliver@neukum.name -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB BLOCK DRIVER (UB ub) P: Pete Zaitcev M: zaitcev@redhat.com L: linux-kernel@vger.kernel.org -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Supported USB CDC ETHERNET DRIVER P: Greg Kroah-Hartman M: greg@kroah.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained W: http://www.kroah.com/linux-usb/ @@ -3846,13 +3842,13 @@ S: Maintained USB EHCI DRIVER P: David Brownell M: dbrownell@users.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Odd Fixes USB ET61X[12]51 DRIVER P: Luca Risolia M: luca.risolia@studio.unibo.it -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: video4linux-list@redhat.com W: http://www.linux-projects.org S: Maintained @@ -3860,41 +3856,33 @@ S: Maintained USB GADGET/PERIPHERAL SUBSYSTEM P: David Brownell M: dbrownell@users.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.linux-usb.org/gadget S: Maintained USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...) P: Jiri Kosina M: jkosina@suse.cz -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org T: git kernel.org:/pub/scm/linux/kernel/git/jikos/hid.git S: Maintained -USB HUB DRIVER -P: Johannes Erdfelt -M: johannes@erdfelt.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net -S: Maintained - USB ISP116X DRIVER P: Olav Kongas M: ok@artecdesign.ee -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB KAWASAKI LSI DRIVER P: Oliver Neukum M: oliver@neukum.name -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB MASS STORAGE DRIVER P: Matthew Dharm M: mdharm-usb@one-eyed-alien.net -L: linux-usb-users@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: usb-storage@lists.one-eyed-alien.net S: Maintained W: http://www.one-eyed-alien.net/~mdharm/linux-usb/ @@ -3902,28 +3890,26 @@ W: http://www.one-eyed-alien.net/~mdharm/linux-usb/ USB OHCI DRIVER P: David Brownell M: dbrownell@users.sourceforge.net -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Odd Fixes USB OPTION-CARD DRIVER P: Matthias Urlichs M: smurf@smurf.noris.de -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB OV511 DRIVER P: Mark McClelland M: mmcclell@bigfoot.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://alpha.dyndns.org/ov511/ S: Maintained USB PEGASUS DRIVER P: Petko Manolov M: petkan@users.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: netdev@vger.kernel.org W: http://pegasus2.sourceforge.net/ S: Maintained @@ -3931,14 +3917,13 @@ S: Maintained USB PRINTER DRIVER (usblp) P: Pete Zaitcev M: zaitcev@redhat.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Supported USB RTL8150 DRIVER P: Petko Manolov M: petkan@users.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: netdev@vger.kernel.org W: http://pegasus2.sourceforge.net/ S: Maintained @@ -3946,8 +3931,7 @@ S: Maintained USB SE401 DRIVER P: Jeroen Vreeken M: pe1rxq@amsat.org -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.chello.nl/~j.vreeken/se401/ S: Maintained @@ -3961,72 +3945,59 @@ USB SERIAL DIGI ACCELEPORT DRIVER P: Peter Berger and Al Borchers M: pberger@brimson.com M: alborchers@steinerpoint.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB SERIAL DRIVER P: Greg Kroah-Hartman M: gregkh@suse.de -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Supported USB SERIAL BELKIN F5U103 DRIVER P: William Greathouse M: wgreathouse@smva.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB SERIAL CYPRESS M8 DRIVER P: Lonnie Mendez M: dignome@gmail.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained W: http://geocities.com/i0xox0i W: http://firstlight.net/cvs -USB SERIAL CYBERJACK PINPAD/E-COM DRIVER -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net -S: Maintained - USB AUERSWALD DRIVER P: Wolfgang Muees M: wolfgang@iksw-muees.de -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER P: Gary Brubaker M: xavyer@ix.netcom.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB SERIAL KEYSPAN DRIVER P: Greg Kroah-Hartman M: greg@kroah.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.kroah.com/linux/ S: Maintained USB SERIAL WHITEHEAT DRIVER P: Support Department M: support@connecttech.com -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.connecttech.com S: Supported USB SN9C1xx DRIVER P: Luca Risolia M: luca.risolia@studio.unibo.it -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: video4linux-list@redhat.com W: http://www.linux-projects.org S: Maintained @@ -4034,8 +4005,7 @@ S: Maintained USB SUBSYSTEM P: Greg Kroah-Hartman M: gregkh@suse.de -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://www.linux-usb.org T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ S: Supported @@ -4043,8 +4013,7 @@ S: Supported USB UHCI DRIVER P: Alan Stern M: stern@rowland.harvard.edu -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org S: Maintained USB "USBNET" DRIVER FRAMEWORK @@ -4057,7 +4026,7 @@ S: Maintained USB W996[87]CF DRIVER P: Luca Risolia M: luca.risolia@studio.unibo.it -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: video4linux-list@redhat.com W: http://www.linux-projects.org S: Maintained @@ -4065,7 +4034,7 @@ S: Maintained USB ZC0301 DRIVER P: Luca Risolia M: luca.risolia@studio.unibo.it -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: video4linux-list@redhat.com W: http://www.linux-projects.org S: Maintained @@ -4073,27 +4042,34 @@ S: Maintained USB ZD1201 DRIVER P: Jeroen Vreeken M: pe1rxq@amsat.org -L: linux-usb-users@lists.sourceforge.net -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org W: http://linux-lc100020.sourceforge.net S: Maintained USB ZR364XX DRIVER P: Antoine Jacquet M: royale@zerezo.com -L: linux-usb-devel@lists.sourceforge.net +L: linux-usb@vger.kernel.org L: video4linux-list@redhat.com W: http://royale.zerezo.com/zr364xx/ S: Maintained USER-MODE LINUX P: Jeff Dike -M: jdike@karaya.com +M: jdike@addtoit.com L: user-mode-linux-devel@lists.sourceforge.net L: user-mode-linux-user@lists.sourceforge.net W: http://user-mode-linux.sourceforge.net S: Maintained +USERSPACE I/O (UIO) +P: Hans J. Koch +M: hjk@linutronix.de +P: Greg Kroah-Hartman +M: gregkh@suse.de +L: linux-kernel@vger.kernel.org +S: Maintained + FAT/VFAT/MSDOS FILESYSTEM: P: OGAWA Hirofumi M: hirofumi@mail.parknet.co.jp @@ -4319,13 +4295,6 @@ L: mjpeg-users@lists.sourceforge.net W: http://mjpeg.sourceforge.net/driver-zoran/ S: Maintained -ZR36120 VIDEO FOR LINUX DRIVER -P: Pauline Middelink -M: middelin@polyware.nl -W: http://www.polyware.nl/~middelin/En/hobbies.html -W: http://www.polyware.nl/~middelin/hobbies.html -S: Maintained - ZS DECSTATION Z85C30 SERIAL DRIVER P: Maciej W. Rozycki M: macro@linux-mips.org diff --git a/trunk/Makefile b/trunk/Makefile index 8816060cdf40..8f08a29539ea 100644 --- a/trunk/Makefile +++ b/trunk/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 24 -EXTRAVERSION = -rc1 +EXTRAVERSION = -rc7 NAME = Arr Matey! A Hairy Bilge Rat! # *DOCUMENTATION* @@ -108,6 +108,9 @@ endif PHONY := _all _all: +# Cancel implicit rules on top Makefile +$(CURDIR)/Makefile Makefile: ; + ifneq ($(KBUILD_OUTPUT),) # Invoke a second make in the output directory, passing relevant variables # check that the output directory actually exists @@ -115,13 +118,10 @@ saved-output := $(KBUILD_OUTPUT) KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd) $(if $(KBUILD_OUTPUT),, \ $(error output directory "$(saved-output)" does not exist)) -# Check that OUTPUT directory is not the same as where we have kernel src -$(if $(filter-out $(KBUILD_OUTPUT),$(shell /bin/pwd)),, \ - $(error Output directory (O=...) specifies kernel src dir)) PHONY += $(MAKECMDGOALS) sub-make -$(filter-out _all sub-make,$(MAKECMDGOALS)) _all: sub-make +$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make $(Q)@: sub-make: FORCE @@ -168,7 +168,8 @@ export srctree objtree VPATH TOPDIR SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \ -e s/arm.*/arm/ -e s/sa110/arm/ \ -e s/s390x/s390/ -e s/parisc64/parisc/ \ - -e s/ppc.*/powerpc/ -e s/mips.*/mips/ ) + -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \ + -e s/sh[234].*/sh/ ) # Cross compiling and selecting different set of gcc/bin-utils # --------------------------------------------------------------------------- @@ -196,8 +197,13 @@ CROSS_COMPILE ?= UTS_MACHINE := $(ARCH) SRCARCH := $(ARCH) -# for i386 and x86_64 we use SRCARCH equal to x86 -SRCARCH := $(if $(filter x86_64 i386,$(SRCARCH)),x86,$(SRCARCH)) +# Additional ARCH settings for x86 +ifeq ($(ARCH),i386) + SRCARCH := x86 +endif +ifeq ($(ARCH),x86_64) + SRCARCH := x86 +endif KCONFIG_CONFIG ?= .config @@ -285,7 +291,8 @@ export quiet Q KBUILD_VERBOSE # Look for make include files relative to root of kernel src MAKEFLAGS += --include-dir=$(srctree) -# We need some generic definitions. +# We need some generic definitions (do not try to remake the file). +$(srctree)/scripts/Kbuild.include: ; include $(srctree)/scripts/Kbuild.include # Make variables (CC, etc...) @@ -527,9 +534,22 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments -KBUILD_CPPFLAGS += $(CPPFLAGS) -KBUILD_AFLAGS += $(AFLAGS) -KBUILD_CFLAGS += $(CFLAGS) +# But warn user when we do so +warn-assign = \ +$(warning "WARNING: Appending $$K$(1) ($(K$(1))) from $(origin K$(1)) to kernel $$$(1)") + +ifneq ($(KCPPFLAGS),) + $(call warn-assign,CPPFLAGS) + KBUILD_CPPFLAGS += $(KCPPFLAGS) +endif +ifneq ($(KAFLAGS),) + $(call warn-assign,AFLAGS) + KBUILD_AFLAGS += $(KAFLAGS) +endif +ifneq ($(KCFLAGS),) + $(call warn-assign,CFLAGS) + KBUILD_CFLAGS += $(KCFLAGS) +endif # Use --build-id when available. LDFLAGS_BUILD_ID = $(patsubst -Wl$(comma)%,%,\ @@ -1313,12 +1333,7 @@ else ALLINCLUDE_ARCHS := $(ALLSOURCE_ARCHS) endif -# Take care of arch/x86 -ifeq ($(ARCH), $(SRCARCH)) -ALLSOURCE_ARCHS := $(ARCH) -else -ALLSOURCE_ARCHS := $(ARCH) $(SRCARCH) -endif +ALLSOURCE_ARCHS := $(SRCARCH) define find-sources ( for arch in $(ALLSOURCE_ARCHS) ; do \ @@ -1546,9 +1561,6 @@ endif # skip-makefile PHONY += FORCE FORCE: -# Cancel implicit rules on top Makefile, `-rR' will apply to sub-makes. -Makefile: ; - # Declare the contents of the .PHONY variable as phony. We keep that # information in a variable se we can use it in if_changed and friends. .PHONY: $(PHONY) diff --git a/trunk/arch/alpha/Makefile b/trunk/arch/alpha/Makefile index 63104ebd1806..4e1a8e2c4541 100644 --- a/trunk/arch/alpha/Makefile +++ b/trunk/arch/alpha/Makefile @@ -14,13 +14,13 @@ LDFLAGS_vmlinux := -static -N #-relax CHECKFLAGS += -D__alpha__ -m64 cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data -cpuflags-$(CONFIG_ALPHA_EV67) := -mcpu=ev67 -cpuflags-$(CONFIG_ALPHA_EV6) := -mcpu=ev6 +cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4 +cpuflags-$(CONFIG_ALPHA_EV5) := -mcpu=ev5 +cpuflags-$(CONFIG_ALPHA_EV56) := -mcpu=ev56 cpuflags-$(CONFIG_ALPHA_POLARIS) := -mcpu=pca56 cpuflags-$(CONFIG_ALPHA_SX164) := -mcpu=pca56 -cpuflags-$(CONFIG_ALPHA_EV56) := -mcpu=ev56 -cpuflags-$(CONFIG_ALPHA_EV5) := -mcpu=ev5 -cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4 +cpuflags-$(CONFIG_ALPHA_EV6) := -mcpu=ev6 +cpuflags-$(CONFIG_ALPHA_EV67) := -mcpu=ev67 # If GENERIC, make sure to turn off any instruction set extensions that # the host compiler might have on by default. Given that EV4 and EV5 # have the same instruction set, prefer EV5 because an EV5 schedule is diff --git a/trunk/arch/alpha/kernel/err_ev7.c b/trunk/arch/alpha/kernel/err_ev7.c index bc799f72d8c1..68cd493f54c5 100644 --- a/trunk/arch/alpha/kernel/err_ev7.c +++ b/trunk/arch/alpha/kernel/err_ev7.c @@ -273,7 +273,7 @@ ev7_process_pal_subpacket(struct el_subpacket *header) struct el_subpacket_handler ev7_pal_subpacket_handler = SUBPACKET_HANDLER_INIT(EL_CLASS__PAL, ev7_process_pal_subpacket); -void +void __init ev7_register_error_handlers(void) { int i; diff --git a/trunk/arch/alpha/kernel/err_marvel.c b/trunk/arch/alpha/kernel/err_marvel.c index 497877bf2012..413bf37eb094 100644 --- a/trunk/arch/alpha/kernel/err_marvel.c +++ b/trunk/arch/alpha/kernel/err_marvel.c @@ -1152,7 +1152,7 @@ marvel_machine_check(u64 vector, u64 la_ptr) mb(); } -void +void __init marvel_register_error_handlers(void) { ev7_register_error_handlers(); diff --git a/trunk/arch/alpha/kernel/err_titan.c b/trunk/arch/alpha/kernel/err_titan.c index 6f3867877d9e..257449ed15ef 100644 --- a/trunk/arch/alpha/kernel/err_titan.c +++ b/trunk/arch/alpha/kernel/err_titan.c @@ -564,7 +564,7 @@ static struct el_subpacket_handler titan_subpacket_handler = SUBPACKET_HANDLER_INIT(EL_CLASS__REGATTA_FAMILY, el_process_regatta_subpacket); -void +void __init titan_register_error_handlers(void) { size_t i; diff --git a/trunk/arch/alpha/kernel/machvec_impl.h b/trunk/arch/alpha/kernel/machvec_impl.h index 0caa45aa128d..466c9dff8181 100644 --- a/trunk/arch/alpha/kernel/machvec_impl.h +++ b/trunk/arch/alpha/kernel/machvec_impl.h @@ -134,7 +134,7 @@ #define __initmv __initdata #define ALIAS_MV(x) #else -#define __initmv +#define __initmv __initdata_refok /* GCC actually has a syntax for defining aliases, but is under some delusion that you shouldn't be able to declare it extern somewhere diff --git a/trunk/arch/alpha/kernel/pci-noop.c b/trunk/arch/alpha/kernel/pci-noop.c index 174b729c504b..468b76ce66a1 100644 --- a/trunk/arch/alpha/kernel/pci-noop.c +++ b/trunk/arch/alpha/kernel/pci-noop.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "proto.h" @@ -172,18 +173,19 @@ dma_alloc_coherent(struct device *dev, size_t size, EXPORT_SYMBOL(dma_alloc_coherent); int -dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, +dma_map_sg(struct device *dev, struct scatterlist *sgl, int nents, enum dma_data_direction direction) { int i; + struct scatterlist *sg; - for (i = 0; i < nents; i++ ) { + for_each_sg(sgl, sg, nents, i) { void *va; - BUG_ON(!sg[i].page); - va = page_address(sg[i].page) + sg[i].offset; - sg_dma_address(sg + i) = (dma_addr_t)virt_to_bus(va); - sg_dma_len(sg + i) = sg[i].length; + BUG_ON(!sg_page(sg)); + va = sg_virt(sg); + sg_dma_address(sg) = (dma_addr_t)virt_to_bus(va); + sg_dma_len(sg) = sg->length; } return nents; diff --git a/trunk/arch/alpha/lib/ev6-stxncpy.S b/trunk/arch/alpha/lib/ev6-stxncpy.S index b581a7af2456..1aa6e97e04b5 100644 --- a/trunk/arch/alpha/lib/ev6-stxncpy.S +++ b/trunk/arch/alpha/lib/ev6-stxncpy.S @@ -362,10 +362,10 @@ $unaligned: extql t2, a1, t2 # U : cmpbge zero, t1, t8 # E : is there a zero? - andnot t2, t6, t12 # E : dest mask for a single word copy + andnot t2, t6, t2 # E : dest mask for a single word copy or t8, t10, t5 # E : test for end-of-count too - cmpbge zero, t12, t3 # E : + cmpbge zero, t2, t3 # E : cmoveq a2, t5, t8 # E : Latency=2, extra map slot nop # E : keep with cmoveq andnot t8, t3, t8 # E : (stall) @@ -379,13 +379,13 @@ $unaligned: negq t8, t6 # E : build bitmask of bytes <= zero mskqh t1, t4, t1 # U : - and t6, t8, t2 # E : - subq t2, 1, t6 # E : (stall) - or t6, t2, t8 # E : (stall) - zapnot t12, t8, t12 # U : prepare source word; mirror changes (stall) + and t6, t8, t12 # E : + subq t12, 1, t6 # E : (stall) + or t6, t12, t8 # E : (stall) + zapnot t2, t8, t2 # U : prepare source word; mirror changes (stall) zapnot t1, t8, t1 # U : to source validity mask - andnot t0, t12, t0 # E : zero place for source to reside + andnot t0, t2, t0 # E : zero place for source to reside or t0, t1, t0 # E : and put it there (stall both t0, t1) stq_u t0, 0(a0) # L : (stall) diff --git a/trunk/arch/alpha/lib/strncpy.S b/trunk/arch/alpha/lib/strncpy.S index bbdef1be5f95..a46f7f3ad8c7 100644 --- a/trunk/arch/alpha/lib/strncpy.S +++ b/trunk/arch/alpha/lib/strncpy.S @@ -35,7 +35,7 @@ strncpy: or $3, $24, $3 # clear the bits between the last or $4, $27, $4 # written byte and the last byte in COUNT - andnot $4, $3, $4 + andnot $3, $4, $4 zap $1, $4, $1 stq_u $1, 0($16) diff --git a/trunk/arch/alpha/lib/stxncpy.S b/trunk/arch/alpha/lib/stxncpy.S index da1a72740d29..3dece25283a3 100644 --- a/trunk/arch/alpha/lib/stxncpy.S +++ b/trunk/arch/alpha/lib/stxncpy.S @@ -315,9 +315,9 @@ $unaligned: extql t2, a1, t2 # e0 : cmpbge zero, t1, t8 # .. e1 : is there a zero? - andnot t2, t6, t12 # e0 : dest mask for a single word copy + andnot t2, t6, t2 # e0 : dest mask for a single word copy or t8, t10, t5 # .. e1 : test for end-of-count too - cmpbge zero, t12, t3 # e0 : + cmpbge zero, t2, t3 # e0 : cmoveq a2, t5, t8 # .. e1 : andnot t8, t3, t8 # e0 : beq t8, $u_head # .. e1 (zdb) @@ -330,14 +330,14 @@ $unaligned: ldq_u t0, 0(a0) # e0 : negq t8, t6 # .. e1 : build bitmask of bytes <= zero mskqh t1, t4, t1 # e0 : - and t6, t8, t2 # .. e1 : - subq t2, 1, t6 # e0 : - or t6, t2, t8 # e1 : + and t6, t8, t12 # .. e1 : + subq t12, 1, t6 # e0 : + or t6, t12, t8 # e1 : - zapnot t12, t8, t12 # e0 : prepare source word; mirror changes + zapnot t2, t8, t2 # e0 : prepare source word; mirror changes zapnot t1, t8, t1 # .. e1 : to source validity mask - andnot t0, t12, t0 # e0 : zero place for source to reside + andnot t0, t2, t0 # e0 : zero place for source to reside or t0, t1, t0 # e1 : and put it there stq_u t0, 0(a0) # e0 : ret (t9) # .. e1 : diff --git a/trunk/arch/arm/Kconfig b/trunk/arch/arm/Kconfig index a0cdaafa115b..c4de2d4664d7 100644 --- a/trunk/arch/arm/Kconfig +++ b/trunk/arch/arm/Kconfig @@ -537,7 +537,7 @@ config ISA_DMA_API bool config PCI - bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 + bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE help Find out whether you have a PCI motherboard. PCI is the name of a bus system, i.e. the way the CPU talks to the other stuff inside @@ -558,6 +558,12 @@ config PCI_HOST_VIA82C505 depends on PCI && ARCH_SHARK default y +config PCI_HOST_ITE8152 + bool + depends on PCI && MACH_ARMCORE + default y + select DMABOUNCE + source "drivers/pci/Kconfig" source "drivers/pcmcia/Kconfig" @@ -1040,6 +1046,8 @@ source "drivers/power/Kconfig" source "drivers/hwmon/Kconfig" +source "drivers/watchdog/Kconfig" + source "drivers/ssb/Kconfig" #source "drivers/l3/Kconfig" diff --git a/trunk/arch/arm/boot/compressed/head.S b/trunk/arch/arm/boot/compressed/head.S index b9b03eda70e5..5cac46a19bb7 100644 --- a/trunk/arch/arm/boot/compressed/head.S +++ b/trunk/arch/arm/boot/compressed/head.S @@ -31,7 +31,7 @@ .macro loadsp, rb .endm .macro writeb, ch, rb - mcr p14, 0, \ch, c0, c1, 0 + mcr p14, 0, \ch, c1, c0, 0 .endm #endif diff --git a/trunk/arch/arm/common/it8152.c b/trunk/arch/arm/common/it8152.c index c03de9bfd76b..97b7dc13d9aa 100644 --- a/trunk/arch/arm/common/it8152.c +++ b/trunk/arch/arm/common/it8152.c @@ -70,8 +70,6 @@ static inline void it8152_irq(int irq) { struct irq_desc *desc; - printk(KERN_DEBUG "===> %s: irq=%d\n", __FUNCTION__, irq); - desc = irq_desc + irq; desc_handle_irq(irq, desc); } @@ -106,8 +104,6 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc) int bits_pd, bits_lp, bits_ld; int i; - printk(KERN_DEBUG "=> %s: irq = %d\n", __FUNCTION__, irq); - while (1) { /* Read all */ bits_pd = __raw_readl(IT8152_INTC_PDCNIRR); @@ -293,8 +289,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size) */ int pci_set_dma_mask(struct pci_dev *dev, u64 mask) { - printk(KERN_DEBUG "%s: %s %llx\n", - __FUNCTION__, dev->dev.bus_id, mask); + dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); if (mask >= PHYS_OFFSET + SZ_64M - 1) return 0; @@ -304,8 +299,7 @@ int pci_set_dma_mask(struct pci_dev *dev, u64 mask) int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) { - printk(KERN_DEBUG "%s: %s %llx\n", - __FUNCTION__, dev->dev.bus_id, mask); + dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask); if (mask >= PHYS_OFFSET + SZ_64M - 1) return 0; diff --git a/trunk/arch/arm/common/uengine.c b/trunk/arch/arm/common/uengine.c index 95c8508c29b7..117cab30bd36 100644 --- a/trunk/arch/arm/common/uengine.c +++ b/trunk/arch/arm/common/uengine.c @@ -374,8 +374,8 @@ static int set_initial_registers(int uengine, struct ixp2000_uengine_code *c) u8 *ucode; int i; - gpr_a = kmalloc(128 * sizeof(u32), GFP_KERNEL); - gpr_b = kmalloc(128 * sizeof(u32), GFP_KERNEL); + gpr_a = kzalloc(128 * sizeof(u32), GFP_KERNEL); + gpr_b = kzalloc(128 * sizeof(u32), GFP_KERNEL); ucode = kmalloc(513 * 5, GFP_KERNEL); if (gpr_a == NULL || gpr_b == NULL || ucode == NULL) { kfree(ucode); @@ -388,8 +388,6 @@ static int set_initial_registers(int uengine, struct ixp2000_uengine_code *c) if (c->uengine_parameters & IXP2000_UENGINE_4_CONTEXTS) per_ctx_regs = 32; - memset(gpr_a, 0, sizeof(gpr_a)); - memset(gpr_b, 0, sizeof(gpr_b)); for (i = 0; i < 256; i++) { struct ixp2000_reg_value *r = c->initial_reg_values + i; u32 *bank; diff --git a/trunk/arch/arm/configs/zylonite_defconfig b/trunk/arch/arm/configs/zylonite_defconfig new file mode 100644 index 000000000000..7949d04a3602 --- /dev/null +++ b/trunk/arch/arm/configs/zylonite_defconfig @@ -0,0 +1,736 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.23 +# Tue Oct 23 13:33:20 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=18 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +# CONFIG_EMBEDDED is not set +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_KMOD is not set +CONFIG_BLOCK=y +# CONFIG_LBD is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set + +# +# Intel PXA2xx/PXA3xx Implementations +# + +# +# Supported PXA3xx Processor Variants +# +CONFIG_CPU_PXA300=y +CONFIG_CPU_PXA310=y +CONFIG_CPU_PXA320=y +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_EM_X270 is not set +CONFIG_MACH_ZYLONITE=y +# CONFIG_MACH_ARMCORE is not set +CONFIG_PXA3xx=y + +# +# Boot options +# + +# +# Power management +# + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSC3=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +CONFIG_IO_36=y + +# +# Processor Features +# +# CONFIG_ARM_THUMB is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +CONFIG_IWMMXT=y + +# +# Bus support +# +# CONFIG_PCI_SYSCALL is not set +# CONFIG_ARCH_SUPPORTS_MSI is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +# CONFIG_TICK_ONESHOT is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +# CONFIG_PREEMPT is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="root=/dev/nfs rootfstype=nfs nfsroot=192.168.1.100:/nfs/rootfs/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on console=ttyS0,38400 mem=64M debug" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Power management options +# +# CONFIG_PM is not set +CONFIG_SUSPEND_UP_POSSIBLE=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +# CONFIG_INET_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_LRO is not set +# CONFIG_INET_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETWORK_SECMARK is not set +# CONFIG_NETFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_BRIDGE is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_ECONET is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_NET_SCHED is not set + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +# CONFIG_WIRELESS_EXT is not set +# CONFIG_MAC80211 is not set +# CONFIG_IEEE80211 is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_CONNECTOR is not set +# CONFIG_MTD is not set +# CONFIG_PARPORT is not set +# CONFIG_BLK_DEV is not set +# CONFIG_MISC_DEVICES is not set +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_DMA is not set +# CONFIG_SCSI_NETLINK is not set +# CONFIG_ATA is not set +# CONFIG_MD is not set +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_VETH is not set +# CONFIG_PHYLIB is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_AX88796 is not set +CONFIG_SMC91X=y +# CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +# CONFIG_B44 is not set +# CONFIG_NETDEV_1000 is not set +# CONFIG_NETDEV_10000 is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +# CONFIG_WLAN_80211 is not set +# CONFIG_WAN is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +# CONFIG_SERIAL_8250 is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_I2C is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set +# CONFIG_W1 is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_HWMON is not set + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set +# CONFIG_DVB_CORE is not set +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_VGASTATE is not set +# CONFIG_VIDEO_OUTPUT_CONTROL is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_SYS_FOPS is not set +CONFIG_FB_DEFERRED_IO=y +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_PXA=y +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +# CONFIG_FONT_8x16 is not set +CONFIG_FONT_6x11=y +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_ACORN_8x8 is not set +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_SUN8x16 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_10x18 is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +CONFIG_LOGO_LINUX_CLUT224=y + +# +# Sound +# +# CONFIG_SOUND is not set +# CONFIG_HID_SUPPORT is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_MMC is not set +# CONFIG_NEW_LEDS is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set + +# +# File systems +# +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_INOTIFY is not set +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +# CONFIG_TMPFS is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set + +# +# Miscellaneous filesystems +# +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +# CONFIG_NFSD is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=y +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS is not set +# CONFIG_CIFS is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_NLS is not set +# CONFIG_DLM is not set +# CONFIG_INSTRUMENTATION is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_KERNEL is not set +# CONFIG_SLUB_DEBUG_ON is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_FRAME_POINTER=y +# CONFIG_SAMPLES is not set +CONFIG_DEBUG_USER=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_MANAGER=y +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +# CONFIG_CRYPTO_ECB is not set +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_HW is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC7 is not set +# CONFIG_LIBCRC32C is not set +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/trunk/arch/arm/kernel/entry-armv.S b/trunk/arch/arm/kernel/entry-armv.S index d645897652c2..29dec080a604 100644 --- a/trunk/arch/arm/kernel/entry-armv.S +++ b/trunk/arch/arm/kernel/entry-armv.S @@ -339,16 +339,6 @@ __pabt_svc: str r1, [sp] @ save the "real" r0 copied @ from the exception stack -#if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) -#ifndef CONFIG_MMU -#warning "NPTL on non MMU needs fixing" -#else - @ make sure our user space atomic helper is aborted - cmp r2, #TASK_SIZE - bichs r3, r3, #PSR_Z_BIT -#endif -#endif - @ @ We are now ready to fill in the remaining blanks on the stack: @ @@ -372,9 +362,25 @@ __pabt_svc: zero_fp .endm + .macro kuser_cmpxchg_check +#if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG) +#ifndef CONFIG_MMU +#warning "NPTL on non MMU needs fixing" +#else + @ Make sure our user space atomic helper is restarted + @ if it was interrupted in a critical region. Here we + @ perform a quick test inline since it should be false + @ 99.9999% of the time. The rest is done out of line. + cmp r2, #TASK_SIZE + blhs kuser_cmpxchg_fixup +#endif +#endif + .endm + .align 5 __dabt_usr: usr_entry + kuser_cmpxchg_check @ @ Call the processor-specific abort handler: @@ -404,6 +410,7 @@ __dabt_usr: .align 5 __irq_usr: usr_entry + kuser_cmpxchg_check #ifdef CONFIG_TRACE_IRQFLAGS bl trace_hardirqs_off @@ -446,9 +453,9 @@ __und_usr: @ @ r0 - instruction @ -1: ldrt r0, [r4] adr r9, ret_from_exception adr lr, __und_usr_unknown +1: ldrt r0, [r4] @ @ fallthrough to call_fpe @ @@ -669,7 +676,7 @@ __kuser_helper_start: * * Clobbered: * - * the Z flag might be lost + * none * * Definition and user space usage example: * @@ -730,9 +737,6 @@ __kuser_memory_barrier: @ 0xffff0fa0 * * - This routine already includes memory barriers as needed. * - * - A failure might be transient, i.e. it is possible, although unlikely, - * that "failure" be returned even if *ptr == oldval. - * * For example, a user space atomic_add implementation could look like this: * * #define atomic_add(ptr, val) \ @@ -769,46 +773,62 @@ __kuser_cmpxchg: @ 0xffff0fc0 #elif __LINUX_ARM_ARCH__ < 6 +#ifdef CONFIG_MMU + /* - * Theory of operation: - * - * We set the Z flag before loading oldval. If ever an exception - * occurs we can not be sure the loaded value will still be the same - * when the exception returns, therefore the user exception handler - * will clear the Z flag whenever the interrupted user code was - * actually from the kernel address space (see the usr_entry macro). - * - * The post-increment on the str is used to prevent a race with an - * exception happening just after the str instruction which would - * clear the Z flag although the exchange was done. + * The only thing that can break atomicity in this cmpxchg + * implementation is either an IRQ or a data abort exception + * causing another process/thread to be scheduled in the middle + * of the critical sequence. To prevent this, code is added to + * the IRQ and data abort exception handlers to set the pc back + * to the beginning of the critical section if it is found to be + * within that critical section (see kuser_cmpxchg_fixup). */ -#ifdef CONFIG_MMU - teq ip, ip @ set Z flag - ldr ip, [r2] @ load current val - add r3, r2, #1 @ prepare store ptr - teqeq ip, r0 @ compare with oldval if still allowed - streq r1, [r3, #-1]! @ store newval if still allowed - subs r0, r2, r3 @ if r2 == r3 the str occured +1: ldr r3, [r2] @ load current val + subs r3, r3, r0 @ compare with oldval +2: streq r1, [r2] @ store newval if eq + rsbs r0, r3, #0 @ set return val and C flag + usr_ret lr + + .text +kuser_cmpxchg_fixup: + @ Called from kuser_cmpxchg_check macro. + @ r2 = address of interrupted insn (must be preserved). + @ sp = saved regs. r7 and r8 are clobbered. + @ 1b = first critical insn, 2b = last critical insn. + @ If r2 >= 1b and r2 <= 2b then saved pc_usr is set to 1b. + mov r7, #0xffff0fff + sub r7, r7, #(0xffff0fff - (0xffff0fc0 + (1b - __kuser_cmpxchg))) + subs r8, r2, r7 + rsbcss r8, r8, #(2b - 1b) + strcs r7, [sp, #S_PC] + mov pc, lr + .previous + #else #warning "NPTL on non MMU needs fixing" mov r0, #-1 adds r0, r0, #0 -#endif usr_ret lr +#endif #else #ifdef CONFIG_SMP mcr p15, 0, r0, c7, c10, 5 @ dmb #endif - ldrex r3, [r2] +1: ldrex r3, [r2] subs r3, r3, r0 strexeq r3, r1, [r2] + teqeq r3, #1 + beq 1b rsbs r0, r3, #0 + /* beware -- each __kuser slot must be 8 instructions max */ #ifdef CONFIG_SMP - mcr p15, 0, r0, c7, c10, 5 @ dmb -#endif + b __kuser_memory_barrier +#else usr_ret lr +#endif #endif @@ -829,7 +849,7 @@ __kuser_cmpxchg: @ 0xffff0fc0 * * Clobbered: * - * the Z flag might be lost + * none * * Definition and user space usage example: * diff --git a/trunk/arch/arm/kernel/traps.c b/trunk/arch/arm/kernel/traps.c index 4764bd9ccee8..c34db4e868fa 100644 --- a/trunk/arch/arm/kernel/traps.c +++ b/trunk/arch/arm/kernel/traps.c @@ -327,7 +327,7 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs) if ((instr & hook->instr_mask) == hook->instr_val && (regs->ARM_cpsr & hook->cpsr_mask) == hook->cpsr_val) { if (hook->fn(regs, instr) == 0) { - spin_unlock_irq(&undef_lock); + spin_unlock_irqrestore(&undef_lock, flags); return; } } @@ -509,7 +509,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) * existence. Don't ever use this from user code. */ case 0xfff0: - { + for (;;) { extern void do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs); unsigned long val; @@ -545,7 +545,6 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) up_read(&mm->mmap_sem); /* simulate a write access fault */ do_DataAbort(addr, 15 + (1 << 11), regs); - return -1; } #endif diff --git a/trunk/arch/arm/mach-at91/at91rm9200_devices.c b/trunk/arch/arm/mach-at91/at91rm9200_devices.c index 0417c165d50d..9296833f91cc 100644 --- a/trunk/arch/arm/mach-at91/at91rm9200_devices.c +++ b/trunk/arch/arm/mach-at91/at91rm9200_devices.c @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -435,7 +436,40 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {} * TWI (i2c) * -------------------------------------------------------------------- */ -#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE) +/* + * Prefer the GPIO code since the TWI controller isn't robust + * (gets overruns and underruns under load) and can only issue + * repeated STARTs in one scenario (the driver doesn't yet handle them). + */ +#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) + +static struct i2c_gpio_platform_data pdata = { + .sda_pin = AT91_PIN_PA25, + .sda_is_open_drain = 1, + .scl_pin = AT91_PIN_PA26, + .scl_is_open_drain = 1, + .udelay = 2, /* ~100 kHz */ +}; + +static struct platform_device at91rm9200_twi_device = { + .name = "i2c-gpio", + .id = -1, + .dev.platform_data = &pdata, +}; + +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) +{ + at91_set_GPIO_periph(AT91_PIN_PA25, 1); /* TWD (SDA) */ + at91_set_multi_drive(AT91_PIN_PA25, 1); + + at91_set_GPIO_periph(AT91_PIN_PA26, 1); /* TWCK (SCL) */ + at91_set_multi_drive(AT91_PIN_PA26, 1); + + i2c_register_board_info(0, devices, nr_devices); + platform_device_register(&at91rm9200_twi_device); +} + +#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE) static struct resource twi_resources[] = { [0] = { @@ -457,7 +491,7 @@ static struct platform_device at91rm9200_twi_device = { .num_resources = ARRAY_SIZE(twi_resources), }; -void __init at91_add_device_i2c(void) +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA25, 0); /* TWD */ @@ -466,10 +500,11 @@ void __init at91_add_device_i2c(void) at91_set_A_periph(AT91_PIN_PA26, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA26, 1); + i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91rm9200_twi_device); } #else -void __init at91_add_device_i2c(void) {} +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) {} #endif diff --git a/trunk/arch/arm/mach-at91/at91sam9260_devices.c b/trunk/arch/arm/mach-at91/at91sam9260_devices.c index ffd3154c1e54..3091bf47d8c9 100644 --- a/trunk/arch/arm/mach-at91/at91sam9260_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9260_devices.c @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -352,7 +353,41 @@ void __init at91_add_device_nand(struct at91_nand_data *data) {} * TWI (i2c) * -------------------------------------------------------------------- */ -#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE) +/* + * Prefer the GPIO code since the TWI controller isn't robust + * (gets overruns and underruns under load) and can only issue + * repeated STARTs in one scenario (the driver doesn't yet handle them). + */ + +#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) + +static struct i2c_gpio_platform_data pdata = { + .sda_pin = AT91_PIN_PA23, + .sda_is_open_drain = 1, + .scl_pin = AT91_PIN_PA24, + .scl_is_open_drain = 1, + .udelay = 2, /* ~100 kHz */ +}; + +static struct platform_device at91sam9260_twi_device = { + .name = "i2c-gpio", + .id = -1, + .dev.platform_data = &pdata, +}; + +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) +{ + at91_set_GPIO_periph(AT91_PIN_PA23, 1); /* TWD (SDA) */ + at91_set_multi_drive(AT91_PIN_PA23, 1); + + at91_set_GPIO_periph(AT91_PIN_PA24, 1); /* TWCK (SCL) */ + at91_set_multi_drive(AT91_PIN_PA24, 1); + + i2c_register_board_info(0, devices, nr_devices); + platform_device_register(&at91sam9260_twi_device); +} + +#elif defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE) static struct resource twi_resources[] = { [0] = { @@ -374,7 +409,7 @@ static struct platform_device at91sam9260_twi_device = { .num_resources = ARRAY_SIZE(twi_resources), }; -void __init at91_add_device_i2c(void) +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) { /* pins used for TWI interface */ at91_set_A_periph(AT91_PIN_PA23, 0); /* TWD */ @@ -383,10 +418,11 @@ void __init at91_add_device_i2c(void) at91_set_A_periph(AT91_PIN_PA24, 0); /* TWCK */ at91_set_multi_drive(AT91_PIN_PA24, 1); + i2c_register_board_info(0, devices, nr_devices); platform_device_register(&at91sam9260_twi_device); } #else -void __init at91_add_device_i2c(void) {} +void __init at91_add_device_i2c(struct i2c_board_info *devices, int nr_devices) {} #endif diff --git a/trunk/arch/arm/mach-at91/at91sam9261_devices.c b/trunk/arch/arm/mach-at91/at91sam9261_devices.c index 3576595b4941..64979a9023c2 100644 --- a/trunk/arch/arm/mach-at91/at91sam9261_devices.c +++ b/trunk/arch/arm/mach-at91/at91sam9261_devices.c @@ -14,7 +14,9 @@ #include #include +#include +#include #include