From ab8ef7fe139dd178e709a629fa0c21457c09f7ff Mon Sep 17 00:00:00 2001 From: zador-blood-stained Date: Sat, 29 Apr 2017 11:16:49 +0300 Subject: [PATCH] Bump version to 3.4.113 --- Documentation/cgroups/cpusets.txt | 6 +- .../devicetree/bindings/mmc/fsl-imx-esdhc.txt | 8 +- .../bindings/tty/serial/of-serial.txt | 3 + Documentation/hwmon/coretemp | 12 +- Documentation/i2c/busses/i2c-i801 | 1 + Documentation/i2c/busses/i2c-piix4 | 2 +- Documentation/ja_JP/HOWTO | 2 +- Documentation/ja_JP/stable_kernel_rules.txt | 6 +- Documentation/kernel-parameters.txt | 21 + Documentation/lzo.txt | 164 ++++++ Documentation/networking/pktgen.txt | 77 ++- Documentation/networking/rds.txt | 9 +- Documentation/pinctrl.txt | 12 +- Documentation/stable_kernel_rules.txt | 3 + Documentation/sysctl/kernel.txt | 25 +- Documentation/x86/x86_64/mm.txt | 2 + Documentation/zh_CN/HOWTO | 2 +- Documentation/zh_CN/stable_kernel_rules.txt | 2 +- MAINTAINERS | 1 + Makefile | 4 +- arch/alpha/Makefile | 2 +- arch/alpha/include/asm/io.h | 5 + arch/alpha/kernel/pci-sysfs.c | 4 +- arch/alpha/kernel/sys_nautilus.c | 5 + arch/alpha/mm/fault.c | 2 + arch/alpha/oprofile/common.c | 1 + arch/arm/Kconfig | 1 - arch/arm/Makefile | 8 + arch/arm/boot/compressed/head-sa1100.S | 1 + arch/arm/boot/compressed/head-shark.S | 1 + arch/arm/boot/compressed/head.S | 1 + arch/arm/boot/dts/imx27.dtsi | 2 +- arch/arm/boot/dts/imx51-babbage.dts | 4 +- arch/arm/configs/at91sam9g45_defconfig | 1 - arch/arm/include/asm/a.out-core.h | 45 -- arch/arm/include/asm/a.out.h | 34 -- arch/arm/include/asm/cacheflush.h | 5 +- arch/arm/include/asm/div64.h | 2 +- arch/arm/include/asm/elf.h | 2 +- arch/arm/include/asm/outercache.h | 4 +- arch/arm/include/asm/pgtable.h | 9 + arch/arm/include/asm/processor.h | 4 - arch/arm/include/asm/uaccess.h | 3 +- arch/arm/kernel/crash_dump.c | 2 +- arch/arm/kernel/entry-header.S | 29 +- arch/arm/kernel/head.S | 3 + arch/arm/kernel/machine_kexec.c | 7 + arch/arm/kernel/perf_event.c | 11 +- arch/arm/kernel/process.c | 7 +- arch/arm/kernel/signal.c | 19 +- arch/arm/kernel/stacktrace.c | 20 +- arch/arm/kernel/topology.c | 2 + arch/arm/kernel/traps.c | 8 +- arch/arm/lib/memset.S | 100 ++-- arch/arm/mach-at91/pm.h | 2 +- arch/arm/mach-at91/sam9_smc.c | 2 +- arch/arm/mach-at91/setup.c | 2 +- arch/arm/mach-dove/common.c | 2 +- arch/arm/mach-footbridge/common.c | 3 + arch/arm/mach-footbridge/dc21285.c | 2 - arch/arm/mach-integrator/integrator_cp.c | 3 +- arch/arm/mach-kirkwood/common.c | 4 +- arch/arm/mach-kirkwood/ts219-setup.c | 2 +- arch/arm/mach-mv78xx0/common.c | 6 +- arch/arm/mach-omap2/board-rx51-peripherals.c | 4 +- arch/arm/mach-omap2/irq.c | 8 + arch/arm/mach-omap2/mux.c | 6 +- arch/arm/mach-omap2/omap_hwmod.c | 43 +- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 17 +- arch/arm/mach-orion5x/common.c | 3 +- arch/arm/mach-pxa/Kconfig | 9 + arch/arm/mach-pxa/Makefile | 1 + arch/arm/mach-pxa/corgi.c | 3 + arch/arm/mach-pxa/hx4700.c | 2 + arch/arm/mach-pxa/include/mach/lubbock.h | 7 +- arch/arm/mach-pxa/include/mach/mainstone.h | 6 +- arch/arm/mach-pxa/include/mach/pxa27x.h | 2 +- arch/arm/mach-pxa/lubbock.c | 108 ++-- arch/arm/mach-pxa/mainstone.c | 115 +---- arch/arm/mach-pxa/poodle.c | 2 + arch/arm/mach-pxa/pxa27x.c | 2 +- arch/arm/mach-pxa/pxa_cplds_irqs.c | 200 +++++++ arch/arm/mach-pxa/reset.c | 8 +- arch/arm/mach-pxa/spitz.c | 2 + arch/arm/mach-pxa/tosa.c | 102 ++-- arch/arm/mach-sa1100/assabet.c | 3 + arch/arm/mach-sa1100/include/mach/collie.h | 2 + arch/arm/mach-sa1100/pm.c | 1 + arch/arm/mach-shmobile/board-mackerel.c | 4 +- arch/arm/mach-u300/include/mach/u300-regs.h | 2 +- arch/arm/mach-versatile/pci.c | 6 +- .../mach-w90x900/include/mach/entry-macro.S | 4 +- arch/arm/mm/abort-ev6.S | 6 - arch/arm/mm/abort-ev7.S | 6 - arch/arm/mm/alignment.c | 3 + arch/arm/mm/cache-feroceon-l2.c | 1 + arch/arm/mm/flush.c | 33 ++ arch/arm/mm/idmap.c | 7 + arch/arm/mm/init.c | 3 + arch/arm/mm/nommu.c | 6 + arch/arm/mm/proc-arm920.S | 2 +- arch/arm/mm/proc-arm926.S | 2 +- arch/arm/mm/proc-sa1100.S | 2 +- arch/arm/mm/proc-v6.S | 5 +- arch/arm/mm/proc-v7.S | 6 +- arch/arm/mm/proc-xsc3.S | 2 +- arch/arm/mm/proc-xscale.S | 6 +- arch/arm/net/bpf_jit_32.c | 27 +- arch/arm/plat-orion/common.c | 20 +- arch/arm/plat-orion/include/plat/common.h | 6 +- arch/avr32/Makefile | 2 +- arch/avr32/boards/mimc200/fram.c | 1 + arch/avr32/boot/u-boot/head.S | 35 +- arch/avr32/configs/favr-32_defconfig | 1 - arch/avr32/configs/merisc_defconfig | 1 - arch/avr32/kernel/entry-avr32b.S | 3 +- arch/avr32/kernel/head.S | 20 - arch/avr32/kernel/module.c | 2 +- arch/avr32/mm/fault.c | 2 + arch/c6x/kernel/time.c | 2 +- arch/cris/arch-v10/lib/Makefile | 3 - arch/cris/include/asm/io.h | 1 + arch/cris/include/asm/posix_types.h | 2 + arch/cris/kernel/vmlinux.lds.S | 1 + arch/cris/mm/fault.c | 2 + arch/frv/include/asm/thread_info.h | 2 - arch/frv/kernel/process.c | 15 - arch/frv/mm/fault.c | 2 + arch/ia64/include/asm/futex.h | 5 +- arch/ia64/include/asm/mca.h | 1 + arch/ia64/include/asm/processor.h | 2 +- arch/ia64/kernel/irq.c | 8 + arch/ia64/kernel/mca.c | 41 +- arch/ia64/kvm/vtlb.c | 2 +- arch/ia64/mm/contig.c | 2 + arch/ia64/mm/discontig.c | 2 + arch/ia64/mm/fault.c | 2 + arch/m32r/boot/compressed/Makefile | 6 +- arch/m32r/boot/compressed/misc.c | 12 +- arch/m32r/mm/fault.c | 2 + arch/m68k/emu/natfeat.c | 23 +- arch/m68k/include/asm/div64.h | 9 +- arch/m68k/include/asm/linkage.h | 30 ++ arch/m68k/kernel/head.S | 29 +- arch/m68k/mm/fault.c | 2 + arch/m68k/mm/hwtest.c | 6 + arch/microblaze/configs/mmu_defconfig | 49 +- arch/microblaze/configs/nommu_defconfig | 71 +-- arch/microblaze/mm/fault.c | 2 + arch/mips/Kconfig | 2 +- arch/mips/ath79/clock.c | 2 +- arch/mips/boot/compressed/decompress.c | 1 + arch/mips/cavium-octeon/setup.c | 18 +- arch/mips/include/asm/atomic.h | 2 +- arch/mips/include/asm/io.h | 5 + arch/mips/include/asm/jump_label.h | 2 +- arch/mips/include/asm/page.h | 17 +- arch/mips/include/asm/pgtable.h | 31 ++ arch/mips/kernel/irq-msc01.c | 2 +- arch/mips/kernel/irq.c | 2 +- arch/mips/kernel/irq_cpu.c | 4 + arch/mips/kernel/mcount.S | 12 + arch/mips/kernel/mips-mt-fpaff.c | 5 +- arch/mips/kernel/perf_event_mipsxx.c | 5 - arch/mips/kernel/smp.c | 2 +- arch/mips/loongson/common/Makefile | 3 +- arch/mips/mm/c-r4k.c | 5 + arch/mips/mm/dma-default.c | 18 +- arch/mips/mm/fault.c | 2 + arch/mips/mm/tlbex.c | 5 + arch/mips/oprofile/backtrace.c | 2 +- arch/mips/power/hibernate.S | 2 + arch/mn10300/mm/fault.c | 2 + arch/openrisc/kernel/head.S | 1 + arch/openrisc/mm/fault.c | 2 + arch/parisc/Makefile | 7 +- arch/parisc/kernel/head.S | 4 + arch/parisc/kernel/signal.c | 67 ++- arch/parisc/kernel/syscall_table.S | 2 +- arch/parisc/kernel/traps.c | 6 +- arch/parisc/mm/fault.c | 2 + arch/parisc/mm/init.c | 2 + arch/powerpc/Kconfig | 1 + arch/powerpc/Makefile | 4 +- arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi | 1 + arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi | 1 + arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi | 1 + arch/powerpc/include/asm/exception-64s.h | 4 +- arch/powerpc/include/asm/jump_label.h | 2 +- arch/powerpc/include/asm/module.h | 5 +- arch/powerpc/include/asm/page.h | 10 + arch/powerpc/include/asm/ppc-opcode.h | 4 + arch/powerpc/include/asm/ppc_asm.h | 7 +- arch/powerpc/include/asm/rtas.h | 3 + arch/powerpc/kernel/align.c | 10 + arch/powerpc/kernel/cacheinfo.c | 44 +- arch/powerpc/kernel/crash_dump.c | 8 +- arch/powerpc/kernel/entry_64.S | 6 + arch/powerpc/kernel/exceptions-64s.S | 2 +- arch/powerpc/kernel/head_64.S | 2 + arch/powerpc/kernel/iommu.c | 2 +- arch/powerpc/kernel/irq.c | 2 +- arch/powerpc/kernel/lparcfg.c | 24 +- arch/powerpc/kernel/pci_of_scan.c | 4 +- arch/powerpc/kernel/process.c | 4 +- arch/powerpc/kernel/reloc_64.S | 1 + arch/powerpc/kernel/rtas.c | 133 +++++ arch/powerpc/kernel/setup_64.c | 2 +- arch/powerpc/kernel/signal_32.c | 6 + arch/powerpc/kernel/signal_64.c | 6 + arch/powerpc/kernel/sysfs.c | 18 +- arch/powerpc/kernel/time.c | 6 +- arch/powerpc/kernel/traps.c | 20 +- arch/powerpc/kernel/vio.c | 12 +- arch/powerpc/kernel/vmlinux.lds.S | 4 +- arch/powerpc/kvm/book3s_64_mmu_hv.c | 6 +- arch/powerpc/kvm/book3s_hv_rm_mmu.c | 4 + arch/powerpc/kvm/book3s_hv_rmhandlers.S | 2 +- arch/powerpc/kvm/emulate.c | 2 + arch/powerpc/lib/checksum_64.S | 58 ++- arch/powerpc/lib/crtsavres.S | 186 +++++++ arch/powerpc/lib/sstep.c | 2 +- arch/powerpc/mm/fault.c | 6 +- arch/powerpc/mm/numa.c | 4 +- arch/powerpc/perf/callchain.c | 2 +- arch/powerpc/perf/core-book3s.c | 17 +- arch/powerpc/platforms/cell/spu_fault.c | 2 +- arch/powerpc/platforms/cell/spufs/inode.c | 5 +- arch/powerpc/platforms/powernv/pci-ioda.c | 16 +- arch/powerpc/platforms/powernv/pci.c | 4 +- arch/powerpc/platforms/pseries/dlpar.c | 13 +- arch/powerpc/platforms/pseries/eeh_pseries.c | 13 +- arch/powerpc/platforms/pseries/lpar.c | 8 +- arch/powerpc/platforms/pseries/ras.c | 3 +- arch/powerpc/platforms/pseries/suspend.c | 22 + arch/powerpc/sysdev/axonram.c | 2 +- arch/powerpc/sysdev/fsl_msi.c | 5 +- arch/powerpc/sysdev/mpic_pasemi_msi.c | 5 +- arch/powerpc/sysdev/mpic_u3msi.c | 5 +- arch/powerpc/sysdev/ppc4xx_msi.c | 5 +- arch/powerpc/xmon/xmon.c | 7 +- arch/s390/crypto/aes_s390.c | 50 +- arch/s390/crypto/ghash_s390.c | 26 +- arch/s390/include/asm/jump_label.h | 2 +- arch/s390/include/asm/lowcore.h | 11 +- arch/s390/include/asm/pgtable.h | 4 + arch/s390/kernel/head64.S | 7 +- arch/s390/kernel/process.c | 2 +- arch/s390/kernel/ptrace.c | 9 +- arch/s390/kernel/sclp.S | 4 + arch/s390/kernel/suspend.c | 6 + arch/s390/kvm/interrupt.c | 1 + arch/s390/kvm/kvm-s390.c | 27 +- arch/s390/kvm/priv.c | 1 + arch/s390/mm/fault.c | 6 + arch/s390/mm/page-states.c | 10 + arch/score/mm/fault.c | 2 + arch/sh/kernel/dumpstack.c | 2 +- arch/sh/lib/Makefile | 2 +- arch/sh/mm/fault_32.c | 2 + arch/sh/mm/tlbflush_64.c | 2 + arch/sparc/Kconfig | 2 +- arch/sparc/include/asm/jump_label.h | 2 +- arch/sparc/include/asm/pgtable_64.h | 7 +- arch/sparc/include/asm/switch_to_64.h | 3 +- arch/sparc/include/asm/tlbflush_64.h | 45 +- arch/sparc/include/asm/uaccess_64.h | 4 +- arch/sparc/kernel/asm-offsets.c | 2 + arch/sparc/kernel/entry.S | 2 +- arch/sparc/kernel/ktlb.S | 3 +- arch/sparc/kernel/ldc.c | 2 +- arch/sparc/kernel/pci.c | 16 +- arch/sparc/kernel/smp_64.c | 49 +- arch/sparc/kernel/sys32.S | 2 +- arch/sparc/kernel/syscalls.S | 12 +- arch/sparc/kernel/trampoline_64.S | 2 - arch/sparc/kernel/unaligned_64.c | 12 +- arch/sparc/lib/Makefile | 2 +- arch/sparc/lib/NG2memcpy.S | 1 + arch/sparc/lib/ksyms.c | 9 - arch/sparc/lib/ucmpdi2.c | 19 + arch/sparc/math-emu/math_32.c | 2 +- arch/sparc/mm/fault_32.c | 2 + arch/sparc/mm/fault_64.c | 102 ++-- arch/sparc/mm/hypersparc.S | 8 +- arch/sparc/mm/init_64.c | 36 +- arch/sparc/mm/swift.S | 8 +- arch/sparc/mm/tlb.c | 39 +- arch/sparc/mm/tsb.c | 71 ++- arch/sparc/mm/tsunami.S | 6 +- arch/sparc/mm/ultra.S | 119 ++++- arch/sparc/mm/viking.S | 10 +- arch/tile/include/asm/percpu.h | 34 +- arch/tile/kernel/setup.c | 2 +- arch/tile/lib/exports.c | 2 + arch/tile/mm/fault.c | 2 + arch/um/kernel/exitcode.c | 4 +- arch/um/kernel/trap.c | 2 + arch/um/os-Linux/start_up.c | 2 + arch/unicore32/Kconfig | 1 + arch/unicore32/include/asm/bug.h | 5 - arch/unicore32/include/asm/cmpxchg.h | 2 +- arch/unicore32/kernel/setup.h | 6 + arch/unicore32/mm/init.c | 3 + arch/x86/Kconfig | 28 +- arch/x86/boot/Makefile | 6 +- arch/x86/boot/compressed/Makefile | 6 +- arch/x86/crypto/aesni-intel_glue.c | 4 +- arch/x86/crypto/ghash-clmulni-intel_asm.S | 28 - arch/x86/crypto/ghash-clmulni-intel_glue.c | 15 +- arch/x86/include/asm/cpufeature.h | 2 +- arch/x86/include/asm/desc.h | 35 +- arch/x86/include/asm/elf.h | 5 +- arch/x86/include/asm/espfix.h | 16 + arch/x86/include/asm/fpu-internal.h | 13 +- arch/x86/include/asm/hugetlb.h | 1 + arch/x86/include/asm/i387.h | 28 +- arch/x86/include/asm/iommu_table.h | 11 +- arch/x86/include/asm/irqflags.h | 2 +- arch/x86/include/asm/jump_label.h | 2 +- arch/x86/include/asm/kvm_host.h | 28 +- arch/x86/include/asm/ldt.h | 7 + arch/x86/include/asm/mmu.h | 3 +- arch/x86/include/asm/mmu_context.h | 49 +- arch/x86/include/asm/msr-index.h | 2 + arch/x86/include/asm/page_32_types.h | 1 - arch/x86/include/asm/page_64_types.h | 11 +- arch/x86/include/asm/paravirt.h | 5 +- arch/x86/include/asm/paravirt_types.h | 2 + arch/x86/include/asm/pgtable_64_types.h | 2 + arch/x86/include/asm/ptrace.h | 16 + arch/x86/include/asm/setup.h | 2 + arch/x86/include/asm/syscall.h | 4 +- arch/x86/include/asm/topology.h | 3 +- arch/x86/include/asm/vmx.h | 2 + arch/x86/include/asm/xen/hypervisor.h | 2 + arch/x86/kernel/Makefile | 1 + arch/x86/kernel/apic/apic.c | 4 +- arch/x86/kernel/cpu/amd.c | 10 + arch/x86/kernel/cpu/common.c | 6 +- arch/x86/kernel/cpu/intel.c | 15 + arch/x86/kernel/cpu/mcheck/mce.c | 5 +- arch/x86/kernel/cpu/mshyperv.c | 1 + arch/x86/kernel/cpu/perf_event.c | 3 + arch/x86/kernel/cpu/perf_event_amd_ibs.c | 53 +- arch/x86/kernel/cpu/perf_event_intel.c | 24 +- arch/x86/kernel/cpu/perf_event_intel_lbr.c | 27 +- arch/x86/kernel/crash.c | 2 +- arch/x86/kernel/dumpstack_64.c | 1 - arch/x86/kernel/entry_32.S | 30 +- arch/x86/kernel/entry_64.S | 101 ++-- arch/x86/kernel/espfix_64.c | 208 ++++++++ arch/x86/kernel/head_64.S | 8 + arch/x86/kernel/i387.c | 15 +- arch/x86/kernel/irq.c | 4 - arch/x86/kernel/kprobes.c | 20 +- arch/x86/kernel/kvm.c | 9 +- arch/x86/kernel/kvmclock.c | 1 - arch/x86/kernel/ldt.c | 266 +++++----- arch/x86/kernel/microcode_amd.c | 2 +- arch/x86/kernel/paravirt.c | 25 +- arch/x86/kernel/paravirt_patch_64.c | 2 - arch/x86/kernel/process_64.c | 171 ++++-- arch/x86/kernel/quirks.c | 2 +- arch/x86/kernel/reboot.c | 45 +- arch/x86/kernel/relocate_kernel_64.S | 2 +- arch/x86/kernel/setup.c | 4 +- arch/x86/kernel/signal.c | 17 +- arch/x86/kernel/smpboot.c | 10 + arch/x86/kernel/step.c | 61 ++- arch/x86/kernel/sys_x86_64.c | 2 +- arch/x86/kernel/tls.c | 62 ++- arch/x86/kernel/traps.c | 71 ++- arch/x86/kernel/tsc.c | 22 +- arch/x86/kernel/verify_cpu.S | 12 +- arch/x86/kvm/emulate.c | 256 ++++++--- arch/x86/kvm/i8254.c | 4 +- arch/x86/kvm/lapic.c | 32 +- arch/x86/kvm/lapic.h | 4 +- arch/x86/kvm/mmu.c | 7 +- arch/x86/kvm/svm.c | 36 +- arch/x86/kvm/trace.h | 1 + arch/x86/kvm/vmx.c | 74 ++- arch/x86/kvm/x86.c | 133 +++-- arch/x86/kvm/x86.h | 20 +- arch/x86/lguest/boot.c | 1 + arch/x86/math-emu/fpu_entry.c | 3 +- arch/x86/math-emu/fpu_system.h | 21 +- arch/x86/math-emu/get_address.c | 3 +- arch/x86/mm/dump_pagetables.c | 37 +- arch/x86/mm/fault.c | 8 +- arch/x86/mm/init.c | 5 + arch/x86/mm/ioremap.c | 26 +- arch/x86/mm/mmap.c | 12 +- arch/x86/net/bpf_jit.S | 2 +- arch/x86/net/bpf_jit_comp.c | 7 +- arch/x86/pci/acpi.c | 11 + arch/x86/platform/efi/efi.c | 123 ++++- arch/x86/power/cpu.c | 3 +- arch/x86/syscalls/syscall_64.tbl | 6 +- arch/x86/um/sys_call_table_32.c | 6 +- arch/x86/um/sys_call_table_64.c | 2 +- arch/x86/vdso/vdso32/sigreturn.S | 1 + arch/x86/vdso/vma.c | 36 +- arch/x86/xen/enlighten.c | 66 ++- arch/x86/xen/mmu.c | 1 + arch/x86/xen/setup.c | 24 +- arch/x86/xen/smp.c | 2 + arch/x86/xen/time.c | 23 +- arch/xtensa/include/asm/ioctls.h | 19 +- arch/xtensa/include/asm/pgtable.h | 7 +- arch/xtensa/include/asm/unistd.h | 3 +- arch/xtensa/kernel/Makefile | 1 + arch/xtensa/kernel/entry.S | 14 +- arch/xtensa/kernel/pci-dma.c | 12 +- arch/xtensa/kernel/signal.c | 2 +- arch/xtensa/kernel/vmlinux.lds.S | 3 +- arch/xtensa/mm/fault.c | 2 + arch/xtensa/mm/init.c | 6 +- block/blk-core.c | 7 +- block/blk-exec.c | 12 +- block/blk-lib.c | 8 + block/blk-settings.c | 5 +- block/blk-sysfs.c | 2 + block/blk-tag.c | 33 +- block/blk-timeout.c | 3 +- block/elevator.c | 16 +- block/genhd.c | 33 +- block/partition-generic.c | 2 +- block/partitions/mac.c | 10 +- block/scsi_ioctl.c | 3 +- crypto/ablkcipher.c | 4 +- crypto/af_alg.c | 5 + crypto/ahash.c | 3 +- crypto/algapi.c | 5 +- crypto/algif_hash.c | 15 +- crypto/algif_skcipher.c | 3 + crypto/ansi_cprng.c | 4 +- crypto/api.c | 13 +- crypto/authenc.c | 7 +- crypto/blkcipher.c | 2 +- crypto/ccm.c | 3 +- crypto/crypto_user.c | 2 +- crypto/crypto_wq.c | 2 +- crypto/gcm.c | 17 +- crypto/testmgr.h | 38 +- drivers/acpi/acpi_ipmi.c | 24 +- drivers/acpi/acpi_memhotplug.c | 1 + drivers/acpi/acpica/exfldio.c | 14 +- drivers/acpi/acpica/exoparg1.c | 50 +- drivers/acpi/acpica/exstore.c | 155 ++++-- drivers/acpi/acpica/utxface.c | 10 +- drivers/acpi/battery.c | 29 +- drivers/acpi/blacklist.c | 13 + drivers/acpi/bus.c | 16 + drivers/acpi/ec.c | 12 +- drivers/acpi/osl.c | 9 +- drivers/acpi/pci_root.c | 4 +- drivers/acpi/processor_idle.c | 4 +- drivers/acpi/processor_throttling.c | 69 ++- drivers/acpi/video.c | 51 +- drivers/acpi/video_detect.c | 45 ++ drivers/ata/Kconfig | 2 +- drivers/ata/ahci.c | 170 ++++++ drivers/ata/ahci.h | 1 + drivers/ata/ata_piix.c | 48 +- drivers/ata/libahci.c | 34 +- drivers/ata/libata-core.c | 86 ++- drivers/ata/libata-eh.c | 9 +- drivers/ata/libata-pmp.c | 59 ++- drivers/ata/libata-scsi.c | 3 +- drivers/ata/libata-sff.c | 32 +- drivers/ata/libata-transport.c | 16 +- drivers/ata/pata_at91.c | 11 +- drivers/ata/pata_scc.c | 15 +- drivers/ata/pata_serverworks.c | 13 +- drivers/ata/sata_dwc_460ex.c | 26 +- drivers/ata/sata_fsl.c | 2 +- drivers/ata/sata_inic162x.c | 14 + drivers/ata/sata_sil.c | 4 + drivers/ata/sata_sil24.c | 2 +- drivers/atm/ambassador.c | 2 +- drivers/atm/idt77252.c | 4 +- drivers/auxdisplay/ks0108.c | 1 + drivers/base/bus.c | 8 +- drivers/base/core.c | 121 +++-- drivers/base/dd.c | 17 + drivers/base/devres.c | 4 +- drivers/base/firmware_class.c | 3 + drivers/base/memory.c | 2 + drivers/base/platform.c | 8 +- drivers/base/regmap/regcache-rbtree.c | 2 +- drivers/base/regmap/regmap-debugfs.c | 12 +- drivers/base/regmap/regmap.c | 11 +- drivers/block/brd.c | 6 +- drivers/block/cciss.c | 33 +- drivers/block/cpqarray.c | 1 + drivers/block/drbd/drbd_receiver.c | 1 - drivers/block/drbd/drbd_req.c | 1 + drivers/block/floppy.c | 22 +- drivers/block/loop.c | 6 +- drivers/block/nbd.c | 28 +- drivers/block/virtio_blk.c | 29 +- drivers/block/xen-blkback/blkback.c | 31 +- drivers/block/xen-blkback/common.h | 10 +- drivers/block/xen-blkback/xenbus.c | 2 + drivers/block/xen-blkfront.c | 8 +- drivers/bluetooth/ath3k.c | 86 ++- drivers/bluetooth/btusb.c | 78 ++- drivers/bluetooth/hci_ldisc.c | 25 +- drivers/bluetooth/hci_uart.h | 2 + drivers/cdrom/cdrom.c | 2 +- drivers/char/agp/intel-gtt.c | 2 +- drivers/char/applicom.c | 1 - drivers/char/hpet.c | 14 +- drivers/char/i8k.c | 7 + drivers/char/ipmi/ipmi_bt_sm.c | 6 +- drivers/char/ipmi/ipmi_devintf.c | 14 +- drivers/char/ipmi/ipmi_kcs_sm.c | 5 +- drivers/char/ipmi/ipmi_si_intf.c | 48 +- drivers/char/random.c | 35 +- drivers/char/raw.c | 2 +- drivers/char/virtio_console.c | 90 ++-- drivers/clk/clk.c | 1 + drivers/connector/cn_proc.c | 90 +++- drivers/connector/connector.c | 7 +- drivers/cpufreq/cpufreq.c | 23 +- drivers/cpufreq/longhaul.c | 10 +- drivers/cpufreq/powernow-k6.c | 149 +++++- drivers/cpufreq/speedstep-lib.c | 3 + drivers/cpufreq/speedstep-smi.c | 12 + drivers/crypto/caam/error.c | 10 +- drivers/crypto/ixp4xx_crypto.c | 1 - drivers/crypto/talitos.c | 1 + drivers/dma/Kconfig | 1 + drivers/dma/imx-dma.c | 31 +- drivers/dma/mv_xor.c | 72 ++- drivers/dma/mv_xor.h | 1 + drivers/dma/pch_dma.c | 2 +- drivers/dma/pl330.c | 4 +- drivers/dma/ste_dma40.c | 4 +- drivers/edac/e752x_edac.c | 4 +- drivers/edac/i7300_edac.c | 38 +- drivers/edac/i7core_edac.c | 9 +- drivers/edac/i82975x_edac.c | 11 +- drivers/edac/mpc85xx_edac.c | 3 +- drivers/edac/ppc4xx_edac.c | 2 +- drivers/edac/sb_edac.c | 45 +- drivers/eisa/pci_eisa.c | 69 ++- drivers/firewire/core-cdev.c | 6 +- drivers/firewire/core-device.c | 22 +- drivers/firewire/net.c | 6 +- drivers/firewire/ohci.c | 15 +- drivers/firewire/sbp2.c | 17 +- drivers/firmware/Kconfig | 18 + drivers/firmware/efivars.c | 256 ++++++--- drivers/gpio/gpio-mpc8xxx.c | 8 +- drivers/gpio/gpio-msm-v2.c | 4 +- drivers/gpio/gpio-mxs.c | 3 +- drivers/gpio/gpio-tps65912.c | 14 +- drivers/gpio/gpiolib.c | 141 ++--- drivers/gpu/drm/drm_crtc.c | 9 +- drivers/gpu/drm/drm_crtc_helper.c | 4 +- drivers/gpu/drm/drm_drv.c | 9 +- drivers/gpu/drm/drm_edid.c | 11 + drivers/gpu/drm/drm_irq.c | 6 +- drivers/gpu/drm/drm_mm.c | 34 +- drivers/gpu/drm/gma500/cdv_intel_display.c | 14 + drivers/gpu/drm/gma500/framebuffer.c | 4 +- drivers/gpu/drm/gma500/psb_intel_display.c | 14 + drivers/gpu/drm/i915/i915_debugfs.c | 6 +- drivers/gpu/drm/i915/i915_dma.c | 37 +- drivers/gpu/drm/i915/i915_drv.h | 3 + drivers/gpu/drm/i915/i915_gem.c | 37 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 4 +- drivers/gpu/drm/i915/i915_reg.h | 4 +- drivers/gpu/drm/i915/intel_bios.c | 2 +- drivers/gpu/drm/i915/intel_crt.c | 10 +- drivers/gpu/drm/i915/intel_display.c | 134 ++++- drivers/gpu/drm/i915/intel_dp.c | 18 +- drivers/gpu/drm/i915/intel_drv.h | 5 +- drivers/gpu/drm/i915/intel_dvo.c | 13 +- drivers/gpu/drm/i915/intel_lvds.c | 52 +- drivers/gpu/drm/i915/intel_opregion.c | 2 +- drivers/gpu/drm/i915/intel_panel.c | 31 +- drivers/gpu/drm/i915/intel_ringbuffer.c | 12 + drivers/gpu/drm/i915/intel_sdvo.c | 34 +- drivers/gpu/drm/nouveau/nouveau_acpi.c | 3 - drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 8 +- drivers/gpu/drm/radeon/atom.c | 11 +- drivers/gpu/drm/radeon/atombios_crtc.c | 61 ++- drivers/gpu/drm/radeon/atombios_dp.c | 47 +- drivers/gpu/drm/radeon/atombios_encoders.c | 26 +- drivers/gpu/drm/radeon/atombios_i2c.c | 4 +- drivers/gpu/drm/radeon/evergreen.c | 119 ++++- drivers/gpu/drm/radeon/evergreen_cs.c | 5 +- drivers/gpu/drm/radeon/evergreen_reg.h | 2 + drivers/gpu/drm/radeon/evergreend.h | 4 + drivers/gpu/drm/radeon/ni.c | 41 +- drivers/gpu/drm/radeon/nid.h | 4 + drivers/gpu/drm/radeon/r100.c | 13 +- drivers/gpu/drm/radeon/r300.c | 9 +- drivers/gpu/drm/radeon/r300_cmdbuf.c | 2 +- drivers/gpu/drm/radeon/r420.c | 10 +- drivers/gpu/drm/radeon/r520.c | 9 +- drivers/gpu/drm/radeon/r600.c | 29 +- drivers/gpu/drm/radeon/r600_cs.c | 5 +- drivers/gpu/drm/radeon/r600_hdmi.c | 4 +- drivers/gpu/drm/radeon/r600d.h | 1 + drivers/gpu/drm/radeon/radeon_atombios.c | 45 +- drivers/gpu/drm/radeon/radeon_atpx_handler.c | 7 + drivers/gpu/drm/radeon/radeon_bios.c | 10 +- drivers/gpu/drm/radeon/radeon_combios.c | 293 +++++++---- drivers/gpu/drm/radeon/radeon_connectors.c | 41 +- drivers/gpu/drm/radeon/radeon_cs.c | 4 +- drivers/gpu/drm/radeon/radeon_device.c | 34 +- drivers/gpu/drm/radeon/radeon_display.c | 6 + drivers/gpu/drm/radeon/radeon_i2c.c | 3 + drivers/gpu/drm/radeon/radeon_irq_kms.c | 7 + drivers/gpu/drm/radeon/radeon_kms.c | 6 + drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 28 + drivers/gpu/drm/radeon/radeon_mode.h | 2 + drivers/gpu/drm/radeon/radeon_pm.c | 12 +- drivers/gpu/drm/radeon/radeon_ttm.c | 4 +- drivers/gpu/drm/radeon/rs400.c | 18 +- drivers/gpu/drm/radeon/rs600.c | 19 +- drivers/gpu/drm/radeon/rs690.c | 9 +- drivers/gpu/drm/radeon/rv515.c | 9 +- drivers/gpu/drm/radeon/rv770.c | 13 +- drivers/gpu/drm/radeon/si.c | 53 +- drivers/gpu/drm/radeon/sid.h | 8 +- drivers/gpu/drm/ttm/ttm_bo.c | 40 +- drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +- drivers/gpu/drm/ttm/ttm_tt.c | 2 +- drivers/gpu/drm/udl/udl_connector.c | 4 + drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 46 +- drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4 +- drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 38 +- drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c | 58 ++- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 16 +- drivers/gpu/vga/vga_switcheroo.c | 3 + drivers/gpu/vga/vgaarb.c | 6 +- drivers/hid/hid-apple.c | 25 + drivers/hid/hid-cherry.c | 2 +- drivers/hid/hid-core.c | 113 +++- drivers/hid/hid-ids.h | 11 + drivers/hid/hid-input.c | 24 +- drivers/hid/hid-kye.c | 2 +- drivers/hid/hid-lg.c | 4 +- drivers/hid/hid-lg2ff.c | 19 +- drivers/hid/hid-lg3ff.c | 29 +- drivers/hid/hid-lg4ff.c | 20 +- drivers/hid/hid-lgff.c | 17 +- drivers/hid/hid-logitech-dj.c | 102 ++-- drivers/hid/hid-logitech-dj.h | 1 + drivers/hid/hid-magicmouse.c | 10 + drivers/hid/hid-microsoft.c | 6 +- drivers/hid/hid-monterey.c | 2 +- drivers/hid/hid-multitouch.c | 4 +- drivers/hid/hid-ntrig.c | 3 +- drivers/hid/hid-petalynx.c | 2 +- drivers/hid/hid-picolcd.c | 8 +- drivers/hid/hid-pl.c | 10 +- drivers/hid/hid-roccat-kovaplus.c | 4 + drivers/hid/hid-roccat-pyra.c | 7 + drivers/hid/hid-sony.c | 18 +- drivers/hid/hid-speedlink.c | 11 +- drivers/hid/hid-sunplus.c | 2 +- drivers/hid/hid-zpff.c | 18 +- drivers/hid/hidraw.c | 98 ++-- drivers/hid/usbhid/hid-quirks.c | 5 + drivers/hv/channel.c | 54 +- drivers/hv/channel_mgmt.c | 12 +- drivers/hv/connection.c | 17 +- drivers/hv/ring_buffer.c | 4 +- drivers/hv/vmbus_drv.c | 10 +- drivers/hwmon/abituguru.c | 16 +- drivers/hwmon/adm1021.c | 58 ++- drivers/hwmon/adm1029.c | 3 + drivers/hwmon/adt7470.c | 2 +- drivers/hwmon/amc6821.c | 2 +- drivers/hwmon/applesmc.c | 24 +- drivers/hwmon/coretemp.c | 36 +- drivers/hwmon/emc1403.c | 4 +- drivers/hwmon/lm78.c | 2 + drivers/hwmon/lm90.c | 11 +- drivers/hwmon/max1668.c | 2 +- drivers/hwmon/sis5595.c | 2 + drivers/hwmon/vt8231.c | 2 +- drivers/hwmon/w83l786ng.c | 13 +- drivers/hwspinlock/hwspinlock_core.c | 2 + drivers/i2c/busses/Kconfig | 2 + drivers/i2c/busses/i2c-davinci.c | 8 +- drivers/i2c/busses/i2c-designware-core.c | 6 +- drivers/i2c/busses/i2c-i801.c | 3 + drivers/i2c/busses/i2c-piix4.c | 3 +- drivers/i2c/busses/i2c-tegra.c | 13 +- drivers/i2c/busses/i2c-xiic.c | 6 +- drivers/idle/intel_idle.c | 48 +- drivers/infiniband/core/cm.c | 10 +- drivers/infiniband/core/cma.c | 27 +- drivers/infiniband/core/umem.c | 11 + drivers/infiniband/core/user_mad.c | 75 +-- drivers/infiniband/core/uverbs.h | 3 +- drivers/infiniband/core/uverbs_cmd.c | 10 +- drivers/infiniband/core/uverbs_main.c | 44 +- drivers/infiniband/hw/ehca/ehca_cq.c | 1 + drivers/infiniband/hw/ipath/ipath_diag.c | 70 ++- drivers/infiniband/hw/ipath/ipath_user_sdma.c | 7 +- drivers/infiniband/hw/mlx4/ah.c | 6 +- drivers/infiniband/hw/mlx4/mad.c | 20 +- drivers/infiniband/hw/mlx4/qp.c | 3 +- drivers/infiniband/hw/mthca/mthca_provider.c | 1 + drivers/infiniband/hw/nes/nes_verbs.c | 2 +- drivers/infiniband/hw/qib/qib.h | 13 +- drivers/infiniband/hw/qib/qib_eeprom.c | 181 ------- drivers/infiniband/hw/qib/qib_iba6120.c | 2 - drivers/infiniband/hw/qib/qib_iba7220.c | 2 - drivers/infiniband/hw/qib/qib_iba7322.c | 7 +- drivers/infiniband/hw/qib/qib_init.c | 1 - drivers/infiniband/hw/qib/qib_keys.c | 4 + drivers/infiniband/hw/qib/qib_mad.c | 2 +- drivers/infiniband/hw/qib/qib_sysfs.c | 24 - drivers/infiniband/hw/qib/qib_ud.c | 9 +- drivers/infiniband/hw/qib/qib_user_sdma.c | 6 +- drivers/infiniband/hw/qib/qib_verbs.c | 14 +- drivers/infiniband/hw/qib/qib_verbs.h | 2 + drivers/infiniband/ulp/srp/ib_srp.c | 6 + drivers/infiniband/ulp/srpt/ib_srpt.c | 38 +- drivers/input/Kconfig | 2 +- drivers/input/input.c | 4 + drivers/input/joystick/xpad.c | 16 +- drivers/input/keyboard/Kconfig | 4 +- drivers/input/mouse/alps.c | 11 +- drivers/input/mouse/elantech.c | 97 +++- drivers/input/mouse/elantech.h | 1 + drivers/input/mouse/synaptics.c | 254 +++++++-- drivers/input/mouse/synaptics.h | 7 + drivers/input/serio/Kconfig | 6 +- drivers/input/serio/i8042-x86ia64io.h | 78 +++ drivers/input/serio/i8042.c | 14 + drivers/input/serio/serport.c | 47 +- drivers/input/touchscreen/cyttsp_core.c | 2 +- drivers/input/touchscreen/usbtouchscreen.c | 25 +- drivers/iommu/amd_iommu.c | 51 +- drivers/iommu/amd_iommu_types.h | 2 + drivers/iommu/dmar.c | 11 +- drivers/iommu/intel-iommu.c | 127 +++-- drivers/isdn/gigaset/ser-gigaset.c | 10 +- drivers/isdn/hardware/mISDN/mISDNipac.c | 7 +- drivers/isdn/i4l/isdn_ppp.c | 12 +- drivers/isdn/isdnloop/isdnloop.c | 31 +- drivers/isdn/mISDN/socket.c | 13 +- drivers/leds/leds-ot200.c | 14 +- drivers/lguest/core.c | 2 +- drivers/macintosh/windfarm_core.c | 2 +- drivers/md/Kconfig | 6 +- drivers/md/Makefile | 1 + drivers/md/dm-bufio.c | 42 +- drivers/md/dm-builtin.c | 50 ++ drivers/md/dm-crypt.c | 66 ++- drivers/md/dm-delay.c | 29 +- drivers/md/dm-flakey.c | 5 +- drivers/md/dm-io.c | 14 +- drivers/md/dm-ioctl.c | 18 +- drivers/md/dm-linear.c | 5 +- drivers/md/dm-log-userspace-transfer.c | 2 +- drivers/md/dm-mpath.c | 24 +- drivers/md/dm-raid.c | 17 +- drivers/md/dm-raid1.c | 15 +- drivers/md/dm-snap-persistent.c | 20 +- drivers/md/dm-snap.c | 95 +++- drivers/md/dm-stripe.c | 5 +- drivers/md/dm-sysfs.c | 5 +- drivers/md/dm-table.c | 23 +- drivers/md/dm-thin.c | 96 ++-- drivers/md/dm-verity.c | 11 +- drivers/md/dm.c | 48 +- drivers/md/dm.h | 17 + drivers/md/md.c | 53 +- .../md/persistent-data/dm-btree-internal.h | 6 + drivers/md/persistent-data/dm-btree-remove.c | 65 +-- drivers/md/persistent-data/dm-btree-spine.c | 37 ++ drivers/md/persistent-data/dm-btree.c | 31 +- .../md/persistent-data/dm-space-map-common.c | 6 +- drivers/md/raid0.c | 55 +- drivers/md/raid1.c | 88 +++- drivers/md/raid1.h | 5 + drivers/md/raid10.c | 97 +++- drivers/md/raid10.h | 6 + drivers/md/raid5.c | 113 ++-- drivers/md/raid5.h | 1 + drivers/media/dvb/dvb-core/dmxdev.c | 8 +- drivers/media/dvb/mantis/mantis_dvb.c | 6 +- drivers/media/media-device.c | 1 + drivers/media/rc/rc-main.c | 3 - drivers/media/video/gspca/kinect.c | 1 + drivers/media/video/hdpvr/hdpvr-core.c | 22 +- drivers/media/video/omap/omap_vout.c | 12 +- drivers/media/video/saa7134/saa7134-alsa.c | 2 + drivers/media/video/saa7164/saa7164-core.c | 4 +- drivers/media/video/v4l2-device.c | 30 +- drivers/memstick/core/mspro_block.c | 3 +- drivers/mfd/adp5520.c | 8 +- drivers/mfd/max8925-i2c.c | 9 + drivers/mfd/max8997.c | 18 + drivers/mfd/max8998.c | 4 + drivers/mfd/tc6393xb.c | 13 +- drivers/misc/enclosure.c | 7 + drivers/misc/hpilo.c | 11 +- drivers/mmc/card/block.c | 57 +- drivers/mmc/core/core.c | 1 + drivers/mmc/core/mmc.c | 2 +- drivers/mmc/host/Kconfig | 10 - drivers/mmc/host/atmel-mci.c | 38 +- drivers/mmc/host/mxs-mmc.c | 8 +- drivers/mmc/host/tmio_mmc_dma.c | 4 +- drivers/mtd/devices/m25p80.c | 20 +- drivers/mtd/maps/dc21285.c | 4 +- drivers/mtd/mtd_blkdevs.c | 5 + drivers/mtd/mtdchar.c | 56 +- drivers/mtd/mtdpart.c | 4 +- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 4 +- drivers/mtd/nand/mxc_nand.c | 1 - drivers/mtd/nand/nand_base.c | 15 +- drivers/mtd/nand/nuc900_nand.c | 2 +- drivers/mtd/nand/pxa3xx_nand.c | 4 +- drivers/mtd/sm_ftl.c | 11 +- drivers/mtd/ubi/cdev.c | 2 +- drivers/mtd/ubi/eba.c | 3 +- drivers/mtd/ubi/io.c | 5 + drivers/mtd/ubi/misc.c | 2 + drivers/mtd/ubi/scan.c | 2 +- drivers/mtd/ubi/upd.c | 10 +- drivers/mtd/ubi/vtbl.c | 1 + drivers/mtd/ubi/wl.c | 3 +- drivers/net/arcnet/arcnet.c | 2 +- drivers/net/bonding/bond_3ad.c | 6 +- drivers/net/bonding/bond_3ad.h | 1 + drivers/net/bonding/bond_alb.c | 6 + drivers/net/bonding/bond_main.c | 32 +- drivers/net/bonding/bond_sysfs.c | 11 +- drivers/net/bonding/bonding.h | 13 + drivers/net/can/at91_can.c | 8 +- drivers/net/can/c_can/c_can.c | 12 +- drivers/net/can/dev.c | 25 +- drivers/net/can/flexcan.c | 59 ++- drivers/net/can/mcp251x.c | 15 +- drivers/net/can/sja1000/peak_pci.c | 14 +- drivers/net/can/sja1000/sja1000.c | 20 +- drivers/net/can/sja1000/sja1000_of_platform.c | 31 +- drivers/net/can/usb/esd_usb2.c | 1 + drivers/net/can/usb/peak_usb/pcan_usb.c | 2 +- drivers/net/can/usb/peak_usb/pcan_usb_core.c | 17 +- drivers/net/can/usb/peak_usb/pcan_usb_pro.c | 3 +- drivers/net/dummy.c | 4 + drivers/net/ethernet/3com/3c509.c | 2 + drivers/net/ethernet/3com/3c59x.c | 27 +- drivers/net/ethernet/amd/pcnet32.c | 31 +- drivers/net/ethernet/atheros/atl1e/atl1e.h | 2 +- .../net/ethernet/atheros/atl1e/atl1e_main.c | 51 +- .../net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 14 +- .../net/ethernet/broadcom/bnx2x/bnx2x_main.c | 4 + .../net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 3 - drivers/net/ethernet/broadcom/tg3.c | 88 +++- drivers/net/ethernet/broadcom/tg3.h | 14 +- drivers/net/ethernet/calxeda/xgmac.c | 2 +- drivers/net/ethernet/emulex/benet/be_main.c | 2 +- drivers/net/ethernet/freescale/gianfar.c | 11 +- drivers/net/ethernet/freescale/gianfar.h | 11 +- drivers/net/ethernet/freescale/gianfar_ptp.c | 4 +- drivers/net/ethernet/ibm/ehea/ehea_main.c | 2 +- drivers/net/ethernet/ibm/ibmveth.c | 41 +- drivers/net/ethernet/intel/e1000/e1000_main.c | 10 +- drivers/net/ethernet/intel/e1000e/e1000.h | 1 + drivers/net/ethernet/intel/e1000e/netdev.c | 48 +- .../ethernet/intel/ixgbe/ixgbe_dcb_82598.c | 3 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +- .../net/ethernet/intel/ixgbevf/ixgbevf_main.c | 12 - drivers/net/ethernet/marvell/mv643xx_eth.c | 6 +- drivers/net/ethernet/mellanox/mlx4/en_cq.c | 1 - .../net/ethernet/mellanox/mlx4/en_netdev.c | 6 +- drivers/net/ethernet/mellanox/mlx4/main.c | 182 ++++--- drivers/net/ethernet/mellanox/mlx4/mlx4.h | 7 + drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 - drivers/net/ethernet/realtek/8139cp.c | 51 +- drivers/net/ethernet/realtek/r8169.c | 76 ++- drivers/net/ethernet/renesas/sh_eth.c | 20 +- drivers/net/ethernet/renesas/sh_eth.h | 2 +- drivers/net/ethernet/sfc/mcdi.c | 2 +- drivers/net/ethernet/sfc/rx.c | 3 +- drivers/net/ethernet/smsc/smc91x.h | 22 +- drivers/net/ethernet/stmicro/stmmac/descs.h | 2 + .../net/ethernet/stmicro/stmmac/enh_desc.c | 4 +- .../net/ethernet/stmicro/stmmac/norm_desc.c | 4 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 18 +- drivers/net/ethernet/sun/niu.c | 4 +- drivers/net/ethernet/sun/sunvnet.c | 20 + drivers/net/ethernet/tehuti/tehuti.c | 1 - drivers/net/ethernet/ti/davinci_emac.c | 3 +- drivers/net/ethernet/via/via-rhine.c | 10 +- drivers/net/ethernet/xilinx/ll_temac_main.c | 8 +- .../net/ethernet/xilinx/xilinx_axienet_main.c | 2 +- drivers/net/hamradio/hdlcdrv.c | 2 + drivers/net/hamradio/yam.c | 1 + drivers/net/hyperv/netvsc_drv.c | 1 - drivers/net/ifb.c | 8 +- drivers/net/macvlan.c | 13 +- drivers/net/macvtap.c | 97 ++-- drivers/net/phy/broadcom.c | 2 +- drivers/net/ppp/ppp_generic.c | 8 +- drivers/net/ppp/pppoe.c | 4 +- drivers/net/ppp/pptp.c | 8 +- drivers/net/slip/slhc.c | 12 +- drivers/net/slip/slip.c | 2 +- drivers/net/team/team.c | 11 +- drivers/net/team/team_mode_roundrobin.c | 2 + drivers/net/tun.c | 13 +- drivers/net/usb/asix.c | 124 ++++- drivers/net/usb/cdc_ether.c | 5 + drivers/net/usb/dm9601.c | 36 +- drivers/net/usb/gl620a.c | 4 + drivers/net/usb/mcs7830.c | 5 +- drivers/net/usb/net1080.c | 4 + drivers/net/usb/qmi_wwan.c | 101 ++++ drivers/net/usb/rndis_host.c | 4 + drivers/net/usb/smsc75xx.c | 16 +- drivers/net/usb/smsc95xx.c | 4 + drivers/net/usb/usbnet.c | 25 +- drivers/net/virtio_net.c | 12 +- drivers/net/vmxnet3/vmxnet3_drv.c | 19 +- drivers/net/wan/dlci.c | 26 +- drivers/net/wan/farsync.c | 1 + drivers/net/wan/wanxl.c | 1 + drivers/net/wan/x25_asy.c | 6 +- drivers/net/wimax/i2400m/usb-rx.c | 2 +- drivers/net/wireless/ath/ath5k/qcu.c | 8 +- drivers/net/wireless/ath/ath5k/reset.c | 2 +- drivers/net/wireless/ath/ath9k/Kconfig | 10 +- drivers/net/wireless/ath/ath9k/Makefile | 2 +- drivers/net/wireless/ath/ath9k/ar9002_mac.c | 52 +- .../net/wireless/ath/ath9k/ar9003_eeprom.c | 8 +- drivers/net/wireless/ath/ath9k/ar9003_hw.c | 15 +- drivers/net/wireless/ath/ath9k/ar9003_phy.c | 31 +- drivers/net/wireless/ath/ath9k/ar9003_phy.h | 2 + .../wireless/ath/ath9k/ar9462_2p0_initvals.h | 4 +- .../wireless/ath/ath9k/ar9580_1p0_initvals.h | 2 +- drivers/net/wireless/ath/ath9k/ath9k.h | 5 +- drivers/net/wireless/ath/ath9k/calib.c | 2 +- drivers/net/wireless/ath/ath9k/htc.h | 1 + drivers/net/wireless/ath/ath9k/htc_drv_init.c | 3 +- drivers/net/wireless/ath/ath9k/htc_drv_main.c | 25 +- drivers/net/wireless/ath/ath9k/htc_drv_txrx.c | 28 +- drivers/net/wireless/ath/ath9k/hw.c | 3 +- drivers/net/wireless/ath/ath9k/hw.h | 5 +- drivers/net/wireless/ath/ath9k/init.c | 8 +- drivers/net/wireless/ath/ath9k/mac.c | 9 +- drivers/net/wireless/ath/ath9k/main.c | 31 +- drivers/net/wireless/ath/ath9k/rc.h | 2 +- drivers/net/wireless/ath/ath9k/recv.c | 17 +- drivers/net/wireless/ath/ath9k/xmit.c | 9 +- drivers/net/wireless/b43/Kconfig | 4 +- drivers/net/wireless/b43/b43.h | 4 +- drivers/net/wireless/b43/dma.c | 19 + drivers/net/wireless/b43/dma.h | 4 +- drivers/net/wireless/b43/main.c | 72 ++- drivers/net/wireless/b43/phy_n.c | 17 +- drivers/net/wireless/b43/xmit.c | 14 +- drivers/net/wireless/b43legacy/main.c | 1 + drivers/net/wireless/brcm80211/brcmsmac/dma.c | 15 +- drivers/net/wireless/hostap/hostap_ioctl.c | 4 +- drivers/net/wireless/iwlegacy/4965-mac.c | 18 +- drivers/net/wireless/iwlegacy/common.c | 1 + drivers/net/wireless/iwlwifi/iwl-6000.c | 6 + drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 2 +- drivers/net/wireless/iwlwifi/iwl-agn.c | 2 +- drivers/net/wireless/iwlwifi/iwl-cfg.h | 1 + drivers/net/wireless/iwlwifi/iwl-core.c | 5 +- drivers/net/wireless/iwlwifi/iwl-debugfs.c | 3 + drivers/net/wireless/iwlwifi/iwl-pci.c | 10 + .../net/wireless/iwlwifi/iwl-trans-pcie-int.h | 11 +- .../net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 37 +- .../net/wireless/iwlwifi/iwl-trans-pcie-tx.c | 72 ++- drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 27 +- drivers/net/wireless/libertas/debugfs.c | 6 +- drivers/net/wireless/mwifiex/11n.c | 3 +- drivers/net/wireless/mwifiex/cmdevt.c | 1 + drivers/net/wireless/mwifiex/debugfs.c | 14 +- drivers/net/wireless/mwifiex/init.c | 8 - drivers/net/wireless/mwifiex/main.c | 1 + drivers/net/wireless/mwifiex/pcie.c | 4 +- drivers/net/wireless/mwifiex/sdio.c | 7 +- drivers/net/wireless/mwifiex/sta_ioctl.c | 21 +- drivers/net/wireless/p54/p54usb.c | 1 + drivers/net/wireless/p54/txrx.c | 2 +- drivers/net/wireless/prism54/islpci_dev.c | 7 +- drivers/net/wireless/rndis_wlan.c | 6 +- drivers/net/wireless/rt2x00/rt2400pci.c | 2 +- drivers/net/wireless/rt2x00/rt2500pci.c | 7 +- drivers/net/wireless/rt2x00/rt2500usb.c | 2 +- drivers/net/wireless/rt2x00/rt2800.h | 2 +- drivers/net/wireless/rt2x00/rt2800lib.c | 11 +- drivers/net/wireless/rt2x00/rt2800usb.c | 15 +- drivers/net/wireless/rt2x00/rt2x00.h | 1 + drivers/net/wireless/rt2x00/rt2x00dev.c | 24 +- drivers/net/wireless/rt2x00/rt2x00mac.c | 27 +- drivers/net/wireless/rt2x00/rt2x00pci.c | 4 +- drivers/net/wireless/rt2x00/rt2x00queue.c | 80 ++- drivers/net/wireless/rt2x00/rt61pci.c | 3 +- drivers/net/wireless/rt2x00/rt73usb.c | 4 +- .../net/wireless/rtl818x/rtl8187/rtl8187.h | 10 +- drivers/net/wireless/rtlwifi/base.c | 87 ++-- drivers/net/wireless/rtlwifi/core.c | 1 + drivers/net/wireless/rtlwifi/pci.c | 4 +- drivers/net/wireless/rtlwifi/ps.c | 2 +- .../net/wireless/rtlwifi/rtl8192c/dm_common.c | 3 + drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 18 +- drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 17 +- drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 6 +- drivers/net/wireless/rtlwifi/rtl8192cu/rf.c | 31 +- drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 4 + drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 11 +- drivers/net/wireless/rtlwifi/rtl8192de/trx.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 27 +- drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 2 +- drivers/net/wireless/rtlwifi/rtl8192se/trx.c | 2 +- drivers/net/wireless/rtlwifi/usb.c | 2 +- drivers/net/wireless/rtlwifi/wifi.h | 8 +- drivers/net/wireless/zd1201.c | 4 +- drivers/net/xen-netback/common.h | 1 + drivers/net/xen-netback/interface.c | 3 +- drivers/net/xen-netback/netback.c | 338 +++++++++--- drivers/net/xen-netback/xenbus.c | 33 +- drivers/net/xen-netfront.c | 17 +- drivers/of/address.c | 25 +- drivers/of/base.c | 89 +--- drivers/of/fdt.c | 2 + drivers/of/selftest.c | 66 ++- drivers/parisc/iommu-helpers.h | 15 +- drivers/parport/parport_pc.c | 10 +- drivers/pci/access.c | 61 ++- drivers/pci/hotplug.c | 2 +- drivers/pci/hotplug/pciehp_core.c | 7 + drivers/pci/hotplug/shpchp.h | 2 +- drivers/pci/hotplug/shpchp_core.c | 26 +- drivers/pci/hotplug/shpchp_ctrl.c | 10 +- drivers/pci/pci-driver.c | 4 + drivers/pci/pci-sysfs.c | 2 +- drivers/pci/pci.c | 28 +- drivers/pci/pcie/aspm.c | 3 + drivers/pci/pcie/portdrv_pci.c | 1 - drivers/pci/probe.c | 35 +- drivers/pci/quirks.c | 84 ++- drivers/pci/rom.c | 9 +- drivers/pci/setup-bus.c | 14 +- drivers/pci/setup-res.c | 5 +- drivers/pcmcia/at91_cf.c | 4 +- drivers/pcmcia/i82092.c | 2 +- drivers/pcmcia/topic.h | 16 + drivers/pcmcia/yenta_socket.c | 6 +- drivers/platform/x86/acer-wmi.c | 11 + drivers/platform/x86/compal-laptop.c | 8 +- drivers/platform/x86/dell-laptop.c | 8 +- drivers/platform/x86/hp_accel.c | 5 +- drivers/platform/x86/ideapad-laptop.c | 3 +- drivers/platform/x86/msi-wmi.c | 4 +- drivers/platform/x86/samsung-laptop.c | 10 + drivers/platform/x86/thinkpad_acpi.c | 9 +- drivers/power/charger-manager.c | 7 +- drivers/power/max17040_battery.c | 5 +- drivers/power/wm831x_power.c | 6 +- drivers/pps/clients/pps-ldisc.c | 10 +- drivers/pps/pps.c | 47 +- drivers/rapidio/devices/tsi721.c | 11 + drivers/regulator/core.c | 4 +- drivers/regulator/max8997.c | 36 +- drivers/regulator/max8998.c | 2 +- drivers/rtc/rtc-at91rm9200.c | 2 + drivers/rtc/rtc-cmos.c | 56 +- drivers/rtc/rtc-pcf2123.c | 1 + drivers/rtc/rtc-pl031.c | 10 +- drivers/rtc/rtc-rv3029c2.c | 2 +- drivers/rtc/rtc-twl.c | 1 + drivers/s390/char/con3215.c | 20 +- drivers/s390/char/sclp_cmd.c | 4 +- drivers/s390/net/qeth_core_main.c | 6 +- drivers/s390/scsi/zfcp_aux.c | 5 +- drivers/s390/scsi/zfcp_erp.c | 29 +- drivers/s390/scsi/zfcp_fsf.c | 27 +- drivers/s390/scsi/zfcp_qdio.c | 8 +- drivers/s390/scsi/zfcp_scsi.c | 10 +- drivers/sbus/char/bbc_envctrl.c | 6 + drivers/sbus/char/bbc_i2c.c | 11 +- drivers/scsi/3w-9xxx.c | 57 +- drivers/scsi/3w-9xxx.h | 5 - drivers/scsi/3w-sas.c | 50 +- drivers/scsi/3w-sas.h | 4 - drivers/scsi/3w-xxxx.c | 42 +- drivers/scsi/3w-xxxx.h | 5 - drivers/scsi/NCR5380.c | 12 +- drivers/scsi/aacraid/commctrl.c | 3 +- drivers/scsi/aacraid/linit.c | 2 + drivers/scsi/aha1740.c | 2 +- drivers/scsi/arcmsr/arcmsr_hba.c | 7 +- drivers/scsi/atari_NCR5380.c | 2 +- drivers/scsi/be2iscsi/be_main.c | 3 +- drivers/scsi/bfa/bfad.c | 6 +- drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 7 + drivers/scsi/bnx2fc/bnx2fc_io.c | 2 +- drivers/scsi/esp_scsi.c | 14 +- drivers/scsi/esp_scsi.h | 1 + drivers/scsi/hpsa.c | 90 +++- drivers/scsi/ibmvscsi/ibmvscsi.c | 3 +- drivers/scsi/ipr.h | 2 +- drivers/scsi/isci/host.h | 5 +- drivers/scsi/isci/port_config.c | 7 - drivers/scsi/isci/task.c | 11 +- drivers/scsi/libfc/fc_fcp.c | 19 +- drivers/scsi/libiscsi.c | 35 +- drivers/scsi/libsas/sas_ata.c | 2 +- drivers/scsi/libsas/sas_discover.c | 6 +- drivers/scsi/libsas/sas_expander.c | 12 + drivers/scsi/megaraid.c | 8 +- drivers/scsi/megaraid/megaraid_mm.c | 2 + drivers/scsi/megaraid/megaraid_sas.h | 3 +- drivers/scsi/megaraid/megaraid_sas_base.c | 52 +- drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 +- drivers/scsi/mpt2sas/mpt2sas_base.c | 13 +- drivers/scsi/mpt2sas/mpt2sas_base.h | 3 + drivers/scsi/mpt2sas/mpt2sas_scsih.c | 133 ++++- drivers/scsi/mvsas/mv_sas.c | 2 + drivers/scsi/nsp32.c | 2 +- drivers/scsi/osd/osd_uld.c | 2 +- drivers/scsi/qla2xxx/qla_def.h | 3 +- drivers/scsi/qla2xxx/qla_iocb.c | 11 +- drivers/scsi/scsi.c | 3 + drivers/scsi/scsi_devinfo.c | 1 + drivers/scsi/scsi_error.c | 13 +- drivers/scsi/scsi_lib.c | 12 +- drivers/scsi/scsi_scan.c | 6 + drivers/scsi/scsi_sysfs.c | 18 +- drivers/scsi/sd.c | 78 +-- drivers/scsi/sd.h | 1 + drivers/scsi/ses.c | 30 +- drivers/scsi/sg.c | 9 +- drivers/scsi/st.c | 2 +- drivers/scsi/storvsc_drv.c | 27 +- drivers/scsi/sun3_NCR5380.c | 10 +- drivers/scsi/sym53c8xx_2/sym_glue.c | 5 +- drivers/scsi/sym53c8xx_2/sym_hipd.c | 4 + drivers/spi/spi-dw-mid.c | 8 +- drivers/spi/spi-dw.c | 10 +- drivers/spi/spi-mpc512x-psc.c | 2 +- drivers/spi/spi-pl022.c | 2 +- drivers/spi/spi-pxa2xx.c | 4 + drivers/spi/spi-s3c64xx.c | 41 +- drivers/spi/spi.c | 5 +- drivers/spi/spidev.c | 5 +- drivers/ssb/driver_chipcommon_pmu.c | 29 ++ drivers/staging/bcm/Bcmchar.c | 1 + drivers/staging/bcm/InterfaceInit.c | 4 +- drivers/staging/bcm/InterfaceInit.h | 5 +- drivers/staging/comedi/comedi_compat32.c | 12 +- drivers/staging/comedi/comedi_fops.c | 32 +- drivers/staging/comedi/drivers/cb_pcidas64.c | 123 +++-- drivers/staging/comedi/drivers/cb_pcidio.c | 21 +- drivers/staging/comedi/drivers/das08.c | 2 +- drivers/staging/comedi/drivers/dt282x.c | 3 +- drivers/staging/comedi/drivers/ni_65xx.c | 26 +- drivers/staging/comedi/drivers/pcmuio.c | 12 +- drivers/staging/comedi/drivers/ssv_dnp.c | 6 +- drivers/staging/et131x/et131x.c | 78 ++- drivers/staging/iio/adc/ad799x_core.c | 3 +- drivers/staging/iio/adc/lpc32xx_adc.c | 4 +- drivers/staging/iio/events.h | 2 +- .../staging/iio/impedance-analyzer/ad5933.c | 47 +- drivers/staging/iio/meter/ade7758_ring.c | 2 +- drivers/staging/line6/pcm.c | 5 +- drivers/staging/media/lirc/lirc_zilog.c | 12 +- drivers/staging/octeon/ethernet-tx.c | 2 +- drivers/staging/ozwpan/ozcdev.c | 3 + drivers/staging/ozwpan/ozusbsvc1.c | 19 +- drivers/staging/panel/panel.c | 13 +- drivers/staging/rtl8712/rtl8712_recv.c | 3 +- drivers/staging/rtl8712/rtl871x_recv.c | 13 +- drivers/staging/rtl8712/usb_intf.c | 6 + drivers/staging/serqt_usb2/serqt_usb2.c | 2 +- drivers/staging/speakup/i18n.c | 12 +- drivers/staging/speakup/i18n.h | 12 +- drivers/staging/speakup/keyhelp.c | 36 +- drivers/staging/speakup/kobjects.c | 80 +-- drivers/staging/speakup/main.c | 367 ++++++------- drivers/staging/speakup/selection.c | 52 +- drivers/staging/speakup/serialio.c | 6 +- drivers/staging/speakup/speakup.h | 73 +-- drivers/staging/speakup/speakup_acntpc.c | 6 +- drivers/staging/speakup/speakup_acntsa.c | 2 +- drivers/staging/speakup/speakup_apollo.c | 8 +- drivers/staging/speakup/speakup_audptr.c | 2 +- drivers/staging/speakup/speakup_bns.c | 2 +- drivers/staging/speakup/speakup_decext.c | 6 +- drivers/staging/speakup/speakup_decpc.c | 4 +- drivers/staging/speakup/speakup_dectlk.c | 6 +- drivers/staging/speakup/speakup_dtlk.c | 4 +- drivers/staging/speakup/speakup_dummy.c | 2 +- drivers/staging/speakup/speakup_keypc.c | 6 +- drivers/staging/speakup/speakup_ltlk.c | 2 +- drivers/staging/speakup/speakup_soft.c | 2 +- drivers/staging/speakup/speakup_spkout.c | 2 +- drivers/staging/speakup/speakup_txprt.c | 2 +- drivers/staging/speakup/spk_priv.h | 8 +- drivers/staging/speakup/synth.c | 38 +- drivers/staging/speakup/thread.c | 4 +- drivers/staging/speakup/varhandlers.c | 66 +-- drivers/staging/tidspbridge/Kconfig | 2 +- drivers/staging/tidspbridge/core/dsp-clock.c | 4 +- drivers/staging/vt6655/rf.c | 1 + drivers/staging/vt6656/baseband.c | 14 +- drivers/staging/vt6656/hostap.c | 2 +- drivers/staging/vt6656/main_usb.c | 3 +- drivers/staging/vt6656/rndis.h | 1 + drivers/staging/wlags49_h2/wl_priv.c | 9 +- drivers/staging/zram/zram_drv.c | 36 +- drivers/staging/zram/zram_sysfs.c | 27 +- drivers/target/iscsi/iscsi_target.c | 58 ++- drivers/target/iscsi/iscsi_target_auth.c | 15 +- drivers/target/iscsi/iscsi_target_configfs.c | 2 +- drivers/target/iscsi/iscsi_target_erl0.c | 4 +- drivers/target/iscsi/iscsi_target_erl1.c | 7 +- drivers/target/iscsi/iscsi_target_login.c | 8 +- drivers/target/iscsi/iscsi_target_nego.c | 12 +- .../target/iscsi/iscsi_target_parameters.c | 10 +- .../target/iscsi/iscsi_target_parameters.h | 4 +- drivers/target/iscsi/iscsi_target_tq.c | 28 +- drivers/target/iscsi/iscsi_target_util.c | 26 +- drivers/target/target_core_alua.c | 9 +- drivers/target/target_core_cdb.c | 9 +- drivers/target/target_core_file.c | 90 ++-- drivers/target/target_core_file.h | 2 +- drivers/target/target_core_pscsi.c | 13 +- drivers/target/target_core_pscsi.h | 1 + drivers/target/target_core_rd.c | 2 +- drivers/target/target_core_transport.c | 8 +- drivers/target/tcm_fc/tfc_io.c | 3 +- drivers/target/tcm_fc/tfc_sess.c | 1 + drivers/thermal/thermal_sys.c | 1 + drivers/tty/hvc/hvc_console.c | 8 +- drivers/tty/hvc/hvc_xen.c | 20 +- drivers/tty/hvc/hvsi_lib.c | 4 +- drivers/tty/n_gsm.c | 89 ++-- drivers/tty/n_tty.c | 16 +- drivers/tty/pty.c | 6 + drivers/tty/serial/8250/8250.c | 36 +- drivers/tty/serial/8250/8250.h | 1 + drivers/tty/serial/8250/8250_pci.c | 86 ++- drivers/tty/serial/atmel_serial.c | 31 +- drivers/tty/serial/imx.c | 18 +- drivers/tty/serial/mxs-auart.c | 38 +- drivers/tty/serial/of_serial.c | 7 +- drivers/tty/serial/pch_uart.c | 34 +- drivers/tty/serial/pmac_zilog.c | 3 + drivers/tty/serial/samsung.c | 4 + drivers/tty/serial/serial_core.c | 6 +- drivers/tty/serial/sunsab.c | 9 + drivers/tty/serial/uartlite.c | 11 +- drivers/tty/serial/xilinx_uartps.c | 12 +- drivers/tty/tty_buffer.c | 14 +- drivers/tty/tty_io.c | 58 ++- drivers/tty/tty_ioctl.c | 12 +- drivers/tty/vt/consolemap.c | 4 + drivers/tty/vt/vt.c | 4 +- drivers/uio/uio.c | 16 +- drivers/usb/atm/cxacru.c | 3 +- drivers/usb/class/cdc-acm.c | 168 ++++-- drivers/usb/class/cdc-acm.h | 2 +- drivers/usb/class/cdc-wdm.c | 33 +- drivers/usb/class/usblp.c | 2 +- drivers/usb/core/buffer.c | 26 +- drivers/usb/core/config.c | 29 +- drivers/usb/core/devio.c | 20 + drivers/usb/core/driver.c | 165 +++--- drivers/usb/core/hcd-pci.c | 2 +- drivers/usb/core/hcd.c | 18 +- drivers/usb/core/hub.c | 208 ++++---- drivers/usb/core/inode.c | 6 +- drivers/usb/core/quirks.c | 189 ++++--- drivers/usb/core/usb.c | 1 + drivers/usb/core/usb.h | 6 +- drivers/usb/dwc3/core.c | 6 +- drivers/usb/dwc3/core.h | 11 +- drivers/usb/dwc3/dwc3-pci.c | 4 + drivers/usb/dwc3/ep0.c | 7 +- drivers/usb/dwc3/gadget.c | 115 +++-- drivers/usb/dwc3/gadget.h | 2 +- drivers/usb/gadget/at91_udc.c | 10 - drivers/usb/gadget/composite.c | 1 + drivers/usb/gadget/f_fs.c | 12 +- drivers/usb/gadget/f_mass_storage.c | 2 + drivers/usb/gadget/inode.c | 17 +- drivers/usb/host/ehci-mxc.c | 2 +- drivers/usb/host/ehci-pci.c | 2 +- drivers/usb/host/ehci-q.c | 16 +- drivers/usb/host/ehci-sched.c | 6 +- drivers/usb/host/ehci-sysfs.c | 8 +- drivers/usb/host/isp1760-hcd.c | 3 + drivers/usb/host/ohci-pci.c | 2 +- drivers/usb/host/pci-quirks.c | 37 +- drivers/usb/host/uhci-hub.c | 3 +- drivers/usb/host/uhci-pci.c | 2 +- drivers/usb/host/whci/qset.c | 4 + drivers/usb/host/xhci-hub.c | 60 +-- drivers/usb/host/xhci-mem.c | 57 +- drivers/usb/host/xhci-pci.c | 61 ++- drivers/usb/host/xhci-plat.c | 4 +- drivers/usb/host/xhci-ring.c | 150 ++++-- drivers/usb/host/xhci.c | 222 +++++--- drivers/usb/host/xhci.h | 18 +- drivers/usb/misc/adutux.c | 2 +- drivers/usb/misc/appledisplay.c | 1 + drivers/usb/misc/sisusbvga/sisusb.c | 2 + drivers/usb/misc/usbtest.c | 41 +- drivers/usb/musb/musb_core.c | 74 +-- drivers/usb/musb/musb_gadget.c | 22 +- drivers/usb/otg/otg_fsm.c | 4 +- drivers/usb/renesas_usbhs/mod_gadget.c | 3 + drivers/usb/serial/ark3116.c | 12 +- drivers/usb/serial/bus.c | 13 +- drivers/usb/serial/ch341.c | 11 +- drivers/usb/serial/console.c | 15 +- drivers/usb/serial/cp210x.c | 19 +- drivers/usb/serial/cypress_m8.c | 32 +- drivers/usb/serial/cypress_m8.h | 6 +- drivers/usb/serial/ftdi_sio.c | 236 +++++++-- drivers/usb/serial/ftdi_sio_ids.h | 223 +++++++- drivers/usb/serial/generic.c | 9 +- drivers/usb/serial/io_edgeport.c | 12 +- drivers/usb/serial/io_ti.c | 67 ++- drivers/usb/serial/io_usbvend.h | 2 +- drivers/usb/serial/ipaq.c | 3 +- drivers/usb/serial/iuu_phoenix.c | 4 +- drivers/usb/serial/keyspan.c | 101 ++-- drivers/usb/serial/kobil_sct.c | 4 +- drivers/usb/serial/mct_u232.c | 13 +- drivers/usb/serial/mos7720.c | 46 +- drivers/usb/serial/mos7840.c | 96 ++-- drivers/usb/serial/opticon.c | 2 +- drivers/usb/serial/option.c | 488 ++++++++++++++++-- drivers/usb/serial/oti6858.c | 10 +- drivers/usb/serial/pl2303.c | 58 ++- drivers/usb/serial/pl2303.h | 10 +- drivers/usb/serial/qcserial.c | 9 +- drivers/usb/serial/sierra.c | 65 ++- drivers/usb/serial/spcp8x5.c | 49 +- drivers/usb/serial/ssu100.c | 23 +- drivers/usb/serial/ti_usb_3410_5052.c | 29 +- drivers/usb/serial/ti_usb_3410_5052.h | 4 +- drivers/usb/serial/usb-serial.c | 36 +- drivers/usb/serial/usb_wwan.c | 123 +++-- drivers/usb/serial/visor.c | 11 +- drivers/usb/serial/whiteheat.c | 40 +- drivers/usb/storage/Kconfig | 4 +- drivers/usb/storage/cypress_atacb.c | 16 +- drivers/usb/storage/scsiglue.c | 10 + drivers/usb/storage/shuttle_usbat.c | 2 +- drivers/usb/storage/transport.c | 26 + drivers/usb/storage/unusual_cypress.h | 2 +- drivers/usb/storage/unusual_devs.h | 106 ++++ drivers/usb/wusbcore/wa-rpipe.c | 5 +- drivers/usb/wusbcore/wa-xfer.c | 5 +- drivers/uwb/lc-dev.c | 13 +- drivers/vhost/net.c | 20 +- drivers/vhost/vhost.c | 2 + drivers/video/arkfb.c | 2 +- drivers/video/aty/mach64_accel.c | 3 +- drivers/video/aty/mach64_cursor.c | 22 +- drivers/video/au1100fb.c | 26 +- drivers/video/au1200fb.c | 23 +- drivers/video/backlight/atmel-pwm-bl.c | 7 +- drivers/video/cfbcopyarea.c | 153 +++--- drivers/video/console/bitblit.c | 3 +- drivers/video/console/fbcon.c | 13 +- drivers/video/console/fbcon_ccw.c | 3 +- drivers/video/console/fbcon_cw.c | 3 +- drivers/video/console/fbcon_ud.c | 3 +- drivers/video/console/vgacon.c | 17 +- drivers/video/fbmem.c | 42 +- drivers/video/kyro/fbdev.c | 6 +- drivers/video/logo/logo.c | 17 +- drivers/video/matrox/matroxfb_accel.c | 38 +- drivers/video/matrox/matroxfb_base.h | 4 +- drivers/video/omap2/omapfb/omapfb-main.c | 2 +- drivers/video/s3fb.c | 2 +- drivers/video/tgafb.c | 289 +++-------- drivers/video/vt8623fb.c | 2 +- drivers/virtio/virtio.c | 19 +- drivers/virtio/virtio_balloon.c | 6 + drivers/virtio/virtio_pci.c | 46 +- drivers/virtio/virtio_ring.c | 56 +- drivers/w1/w1_netlink.c | 25 +- drivers/watchdog/omap_wdt.c | 7 + drivers/watchdog/sc1200wdt.c | 3 +- drivers/watchdog/sp805_wdt.c | 4 +- drivers/watchdog/ts72xx_wdt.c | 3 +- drivers/xen/events.c | 46 +- drivers/xen/evtchn.c | 21 +- drivers/xen/grant-table.c | 13 +- drivers/xen/manage.c | 7 - drivers/xen/xen-pciback/conf_space.c | 6 +- drivers/xen/xen-pciback/conf_space.h | 2 + drivers/xen/xen-pciback/conf_space_header.c | 59 ++- drivers/xen/xen-pciback/pciback.h | 1 + drivers/xen/xen-pciback/pciback_ops.c | 95 +++- firmware/ihex2fw.c | 1 + fs/9p/vfs_inode.c | 7 +- fs/9p/vfs_inode_dotl.c | 5 +- fs/affs/amigaffs.c | 2 +- fs/aio.c | 2 +- fs/autofs4/dev-ioctl.c | 11 +- fs/autofs4/expire.c | 19 +- fs/autofs4/root.c | 2 +- fs/binfmt_elf.c | 24 +- fs/bio.c | 20 +- fs/block_dev.c | 9 +- fs/btrfs/backref.c | 2 +- fs/btrfs/compression.c | 2 + fs/btrfs/disk-io.c | 6 - fs/btrfs/extent-tree.c | 30 +- fs/btrfs/extent_io.c | 3 +- fs/btrfs/file-item.c | 2 +- fs/btrfs/inode-map.c | 2 +- fs/btrfs/inode.c | 13 +- fs/btrfs/ioctl.c | 15 +- fs/btrfs/relocation.c | 14 +- fs/btrfs/tree-log.c | 48 +- fs/btrfs/volumes.c | 5 +- fs/btrfs/xattr.c | 50 +- fs/buffer.c | 63 ++- fs/cachefiles/rdwr.c | 80 +-- fs/ceph/addr.c | 8 +- fs/ceph/dir.c | 8 +- fs/ceph/inode.c | 6 +- fs/ceph/locks.c | 73 ++- fs/ceph/mds_client.c | 96 ++-- fs/ceph/snap.c | 2 +- fs/ceph/super.c | 15 +- fs/ceph/super.h | 11 +- fs/cifs/cifs_dfs_ref.c | 4 +- fs/cifs/cifs_unicode.c | 7 +- fs/cifs/cifs_unicode.h | 8 +- fs/cifs/cifsencrypt.c | 59 ++- fs/cifs/cifsfs.c | 28 +- fs/cifs/cifsfs.h | 4 + fs/cifs/cifsglob.h | 1 + fs/cifs/cifssmb.c | 8 +- fs/cifs/connect.c | 25 +- fs/cifs/file.c | 46 +- fs/cifs/inode.c | 16 +- fs/cifs/readdir.c | 8 + fs/cifs/sess.c | 6 +- fs/cifs/transport.c | 7 + fs/coda/cache.c | 2 +- fs/configfs/dir.c | 16 +- fs/dcache.c | 215 +++++--- fs/debugfs/inode.c | 105 ++-- fs/devpts/inode.c | 1 + fs/ecryptfs/crypto.c | 1 - fs/ecryptfs/dentry.c | 32 +- fs/ecryptfs/file.c | 46 +- fs/ecryptfs/inode.c | 2 +- fs/ecryptfs/keystore.c | 3 +- fs/ecryptfs/main.c | 16 +- fs/exec.c | 94 ++-- fs/exofs/ore.c | 37 +- fs/exportfs/expfs.c | 2 +- fs/ext2/inode.c | 2 + fs/ext2/xip.c | 1 + fs/ext3/dir.c | 167 ++++-- fs/ext3/ext3.h | 6 +- fs/ext3/hash.c | 4 +- fs/ext3/inode.c | 3 +- fs/ext3/namei.c | 7 +- fs/ext3/super.c | 7 - fs/ext4/Kconfig | 3 +- fs/ext4/ext4.h | 56 +- fs/ext4/ext4_jbd2.c | 8 +- fs/ext4/ext4_jbd2.h | 6 +- fs/ext4/extents.c | 71 ++- fs/ext4/file.c | 2 +- fs/ext4/fsync.c | 5 +- fs/ext4/ialloc.c | 14 +- fs/ext4/indirect.c | 11 +- fs/ext4/inode.c | 87 +++- fs/ext4/mballoc.c | 38 +- fs/ext4/mmp.c | 2 + fs/ext4/namei.c | 93 ++-- fs/ext4/page-io.c | 9 +- fs/ext4/resize.c | 20 +- fs/ext4/super.c | 77 ++- fs/ext4/xattr.c | 38 +- fs/fat/inode.c | 15 +- fs/fhandle.c | 5 +- fs/file.c | 2 +- fs/file_table.c | 130 ----- fs/fs-writeback.c | 28 +- fs/fscache/netfs.c | 34 +- fs/fscache/page.c | 2 +- fs/fscache/stats.c | 2 +- fs/fuse/dev.c | 7 +- fs/fuse/dir.c | 13 +- fs/fuse/file.c | 13 +- fs/fuse/fuse_i.h | 9 + fs/fuse/inode.c | 6 +- fs/gfs2/aops.c | 30 ++ fs/gfs2/ops_fstype.c | 12 +- fs/gfs2/super.c | 6 +- fs/hfs/bnode.c | 9 +- fs/hfs/brec.c | 20 +- fs/hfs/super.c | 4 +- fs/hfsplus/bnode.c | 3 - fs/hfsplus/brec.c | 20 +- fs/hfsplus/extents.c | 2 +- fs/hfsplus/options.c | 4 +- fs/hostfs/hostfs_kern.c | 2 +- fs/hpfs/dir.c | 10 +- fs/hpfs/file.c | 5 +- fs/hpfs/map.c | 3 +- fs/hpfs/namei.c | 25 +- fs/hpfs/super.c | 27 +- fs/hugetlbfs/inode.c | 20 +- fs/inode.c | 2 +- fs/internal.h | 3 - fs/ioprio.c | 14 +- fs/isofs/inode.c | 31 +- fs/isofs/isofs.h | 23 +- fs/isofs/rock.c | 48 +- fs/jbd2/checkpoint.c | 46 +- fs/jbd2/commit.c | 52 +- fs/jbd2/journal.c | 86 ++- fs/jbd2/transaction.c | 10 +- fs/jffs2/compr_rtime.c | 4 +- fs/jffs2/nodelist.h | 2 +- fs/jffs2/nodemgmt.c | 14 +- fs/jffs2/scan.c | 5 + fs/jfs/inode.c | 2 +- fs/jfs/jfs_dtree.c | 35 +- fs/jfs/jfs_inode.c | 3 +- fs/jfs/jfs_logmgr.c | 3 +- fs/libfs.c | 12 +- fs/lockd/clntlock.c | 3 + fs/lockd/clntproc.c | 3 - fs/lockd/mon.c | 6 + fs/lockd/svclock.c | 12 + fs/locks.c | 7 +- fs/namei.c | 65 ++- fs/namespace.c | 9 +- fs/ncpfs/dir.c | 11 +- fs/ncpfs/ioctl.c | 1 - fs/ncpfs/ncplib_kernel.h | 4 +- fs/nfs/blocklayout/extents.c | 2 +- fs/nfs/callback.c | 4 +- fs/nfs/callback_xdr.c | 10 +- fs/nfs/delegation.c | 13 +- fs/nfs/getroot.c | 2 +- fs/nfs/inode.c | 10 +- fs/nfs/nfs3proc.c | 6 +- fs/nfs/nfs3xdr.c | 2 +- fs/nfs/nfs4filelayout.c | 1 - fs/nfs/nfs4proc.c | 123 +++-- fs/nfs/nfs4renewd.c | 12 +- fs/nfs/nfs4state.c | 53 +- fs/nfs/nfs4xdr.c | 47 +- fs/nfs/pnfs.c | 19 +- fs/nfs/proc.c | 43 -- fs/nfs/write.c | 10 +- fs/nfsd/nfs4acl.c | 17 +- fs/nfsd/nfs4callback.c | 8 +- fs/nfsd/nfs4proc.c | 44 +- fs/nfsd/nfs4state.c | 42 +- fs/nfsd/nfs4xdr.c | 41 +- fs/nfsd/nfsctl.c | 78 ++- fs/nfsd/nfsd.h | 6 +- fs/nfsd/nfssvc.c | 42 +- fs/nfsd/vfs.c | 185 ++++--- fs/nilfs2/btree.c | 47 +- fs/nilfs2/inode.c | 32 +- fs/nilfs2/nilfs.h | 2 - fs/nilfs2/page.c | 2 + fs/nilfs2/segbuf.c | 5 +- fs/nilfs2/segment.c | 66 ++- fs/nilfs2/segment.h | 5 + fs/notify/fanotify/fanotify.c | 6 + fs/notify/fanotify/fanotify_user.c | 3 +- fs/notify/fsnotify.c | 4 +- fs/notify/inode_mark.c | 17 +- fs/notify/inotify/inotify_user.c | 6 +- fs/ocfs2/aops.c | 16 +- fs/ocfs2/buffer_head_io.c | 2 - fs/ocfs2/dcache.c | 2 +- fs/ocfs2/dlm/dlmmaster.c | 38 +- fs/ocfs2/dlm/dlmrecovery.c | 35 +- fs/ocfs2/dlmglue.c | 10 +- fs/ocfs2/extent_map.c | 3 +- fs/ocfs2/file.c | 22 +- fs/ocfs2/quota_global.c | 27 +- fs/ocfs2/quota_local.c | 4 - fs/ocfs2/resize.c | 15 +- fs/ocfs2/super.c | 4 +- fs/ocfs2/xattr.c | 10 + fs/omfs/inode.c | 3 +- fs/open.c | 2 - fs/pipe.c | 56 +- fs/pnode.c | 4 +- fs/posix_acl.c | 6 + fs/proc/array.c | 2 +- fs/proc/base.c | 1 + fs/proc/inode.c | 12 +- fs/proc/stat.c | 2 +- fs/proc/task_mmu.c | 18 +- fs/quota/dquot.c | 14 +- fs/reiserfs/dir.c | 6 +- fs/reiserfs/super.c | 8 +- fs/reiserfs/xattr.c | 4 +- fs/splice.c | 28 +- fs/stat.c | 5 +- fs/statfs.c | 2 +- fs/super.c | 48 +- fs/sysfs/dir.c | 15 +- fs/sysv/inode.c | 10 +- fs/ubifs/commit.c | 10 +- fs/ubifs/dir.c | 54 +- fs/ubifs/log.c | 19 +- fs/ubifs/master.c | 7 +- fs/ubifs/orphan.c | 5 +- fs/ubifs/shrinker.c | 1 - fs/ubifs/super.c | 13 +- fs/ubifs/ubifs.h | 4 +- fs/udf/dir.c | 3 +- fs/udf/inode.c | 27 + fs/udf/namei.c | 3 +- fs/udf/symlink.c | 57 +- fs/udf/udfdecl.h | 3 +- fs/udf/unicode.c | 28 +- fs/xfs/xfs_ioctl.c | 3 +- fs/xfs/xfs_ioctl32.c | 3 +- fs/xfs/xfs_iops.c | 47 +- fs/xfs/xfs_super.c | 4 +- include/acpi/actypes.h | 21 + include/acpi/platform/acenv.h | 1 + include/asm-generic/pgtable.h | 10 + include/drm/drm_mem_util.h | 4 +- include/drm/drm_mode.h | 2 + include/drm/drm_pciids.h | 8 +- include/linux/acpi.h | 6 + include/linux/ata.h | 2 +- include/linux/audit.h | 4 +- include/linux/binfmts.h | 3 - include/linux/bitops.h | 15 + include/linux/blk_types.h | 4 +- include/linux/blkdev.h | 5 +- include/linux/buffer_head.h | 54 +- include/linux/ceph/auth.h | 18 + include/linux/cgroup.h | 53 +- include/linux/compiler-gcc.h | 6 + include/linux/compiler-gcc4.h | 16 + include/linux/compiler-gcc5.h | 66 +++ include/linux/compiler-intel.h | 9 +- include/linux/cpu.h | 4 + include/linux/cpuset.h | 4 +- include/linux/dcache.h | 8 +- include/linux/device-mapper.h | 4 +- include/linux/device.h | 5 + include/linux/efi.h | 16 +- include/linux/enclosure.h | 4 + include/linux/firewire-cdev.h | 4 +- include/linux/firewire.h | 2 + include/linux/fs.h | 15 +- include/linux/fsnotify.h | 6 +- include/linux/ftrace.h | 5 +- include/linux/ftrace_event.h | 4 +- include/linux/hid.h | 10 +- include/linux/hidraw.h | 4 +- include/linux/highmem.h | 7 + include/linux/hugetlb.h | 31 +- include/linux/icmpv6.h | 2 + include/linux/idr.h | 11 + include/linux/if_cablemodem.h | 12 +- include/linux/if_pppox.h | 4 +- include/linux/if_team.h | 1 + include/linux/init_task.h | 2 + include/linux/ipc_namespace.h | 2 +- include/linux/irqdesc.h | 4 + include/linux/jbd2.h | 10 +- include/linux/jhash.h | 17 +- include/linux/jiffies.h | 20 +- include/linux/kernel.h | 1 + include/linux/kernel_stat.h | 5 + include/linux/khugepaged.h | 17 +- include/linux/kvm_host.h | 2 +- include/linux/kvm_types.h | 1 + include/linux/libata.h | 16 + include/linux/list.h | 16 + include/linux/lzo.h | 15 +- include/linux/mempolicy.h | 2 +- include/linux/mm.h | 14 +- include/linux/mm_types.h | 1 + include/linux/mount.h | 4 +- include/linux/msg.h | 6 +- include/linux/mtd/map.h | 4 +- include/linux/mv643xx_eth.h | 2 + include/linux/nbd.h | 1 + include/linux/net.h | 56 +- include/linux/netdevice.h | 11 +- include/linux/nfs_xdr.h | 2 +- include/linux/nilfs2_fs.h | 2 +- include/linux/of.h | 84 ++- include/linux/oom.h | 4 + include/linux/pci.h | 6 +- include/linux/pci_ids.h | 1 + include/linux/perf_event.h | 17 +- include/linux/pps_kernel.h | 17 +- include/linux/preempt.h | 20 +- include/linux/printk.h | 6 +- include/linux/ptrace.h | 3 + include/linux/random.h | 7 +- include/linux/rculist.h | 18 + include/linux/rculist_nulls.h | 7 +- include/linux/rmap.h | 10 + include/linux/sched.h | 61 ++- include/linux/seq_file.h | 35 ++ include/linux/serial_core.h | 6 +- include/linux/skbuff.h | 52 +- include/linux/slab.h | 2 +- include/linux/socket.h | 6 +- include/linux/spinlock_up.h | 29 +- include/linux/ssb/ssb_driver_chipcommon.h | 2 + include/linux/string.h | 4 +- include/linux/sunrpc/svcsock.h | 1 + include/linux/swapops.h | 3 + include/linux/sysfs.h | 9 + include/linux/time.h | 13 + include/linux/tracepoint.h | 6 + include/linux/usb.h | 16 + include/linux/usb/hcd.h | 4 +- include/linux/usb/quirks.h | 14 + include/linux/usb/serial.h | 2 + include/linux/usb_usual.h | 4 +- include/linux/virtio.h | 10 +- include/linux/virtio_console.h | 2 +- include/linux/wait.h | 73 ++- include/linux/writeback.h | 1 - include/media/v4l2-ctrls.h | 1 + include/net/addrconf.h | 3 + include/net/af_unix.h | 6 +- include/net/bluetooth/hci_core.h | 2 +- include/net/bluetooth/mgmt.h | 1 + include/net/cipso_ipv4.h | 6 +- include/net/dst.h | 12 + include/net/inetpeer.h | 21 +- include/net/ip.h | 35 +- include/net/ip6_fib.h | 3 +- include/net/ip6_route.h | 5 + include/net/ipip.h | 2 +- include/net/ipv6.h | 16 +- include/net/mac80211.h | 5 + include/net/ndisc.h | 2 + include/net/netfilter/nf_conntrack_extend.h | 4 +- include/net/regulatory.h | 2 +- include/net/scm.h | 2 +- include/net/sctp/sctp.h | 5 + include/net/sctp/sm.h | 6 +- include/net/sctp/structs.h | 8 +- include/net/secure_seq.h | 2 - include/net/sock.h | 13 + include/net/tcp.h | 1 + include/net/udp.h | 1 + include/scsi/osd_ore.h | 1 + include/scsi/scsi_device.h | 1 + include/scsi/scsi_devinfo.h | 1 + include/sound/ak4113.h | 2 +- include/sound/ak4114.h | 2 +- include/sound/core.h | 2 + include/sound/emu10k1.h | 14 +- include/sound/memalloc.h | 2 +- include/sound/tlv.h | 24 +- include/sound/wm8904.h | 2 +- include/trace/events/block.h | 33 +- include/trace/events/module.h | 2 +- include/trace/ftrace.h | 5 +- include/trace/syscall.h | 15 + include/xen/events.h | 2 +- include/xen/interface/io/netif.h | 19 + include/xen/interface/io/ring.h | 19 + init/Kconfig | 1 + init/main.c | 6 + ipc/msg.c | 20 +- ipc/msgutil.c | 12 +- ipc/sem.c | 23 +- ipc/shm.c | 19 +- ipc/util.c | 8 +- ipc/util.h | 4 +- kernel/audit.c | 7 +- kernel/audit_tree.c | 3 +- kernel/auditsc.c | 27 +- kernel/cgroup.c | 79 +-- kernel/cgroup_freezer.c | 13 +- kernel/cpu.c | 61 +-- kernel/cpuset.c | 27 +- kernel/debug/kdb/kdb_main.c | 2 +- kernel/events/core.c | 449 +++++++++++----- kernel/events/hw_breakpoint.c | 4 +- kernel/events/internal.h | 4 + kernel/events/ring_buffer.c | 31 +- kernel/exit.c | 16 +- kernel/fork.c | 38 +- kernel/freezer.c | 3 + kernel/futex.c | 262 +++++++--- kernel/hrtimer.c | 79 ++- kernel/irq/internals.h | 8 + kernel/irq/irqdesc.c | 53 ++ kernel/irq/manage.c | 19 +- kernel/irq/pm.c | 2 +- kernel/irq/proc.c | 41 +- kernel/irq/spurious.c | 106 +++- kernel/kmod.c | 5 + kernel/module.c | 11 +- kernel/panic.c | 8 + kernel/posix-timers.c | 1 + kernel/power/hibernate.c | 8 +- kernel/power/process.c | 41 +- kernel/power/snapshot.c | 6 +- kernel/printk.c | 7 +- kernel/ptrace.c | 23 +- kernel/rcutiny.c | 5 + kernel/rtmutex-debug.h | 5 + kernel/rtmutex.c | 252 +++++++-- kernel/rtmutex.h | 5 + kernel/sched/clock.c | 26 + kernel/sched/core.c | 171 ++++-- kernel/sched/cpupri.c | 3 +- kernel/sched/debug.c | 8 + kernel/sched/fair.c | 78 ++- kernel/sched/rt.c | 33 +- kernel/sched/sched.h | 9 +- kernel/signal.c | 2 +- kernel/softirq.c | 22 +- kernel/sys.c | 30 +- kernel/sysctl.c | 6 + kernel/time.c | 58 ++- kernel/time/alarmtimer.c | 24 +- kernel/time/clockevents.c | 77 ++- kernel/time/clocksource.c | 2 +- kernel/time/jiffies.c | 6 + kernel/time/ntp.c | 56 +- kernel/time/tick-broadcast.c | 14 +- kernel/time/tick-common.c | 1 + kernel/time/tick-sched.c | 8 +- kernel/time/timekeeping.c | 49 +- kernel/timer.c | 12 +- kernel/trace/blktrace.c | 20 +- kernel/trace/ftrace.c | 361 ++++++++----- kernel/trace/ring_buffer.c | 19 +- kernel/trace/ring_buffer_benchmark.c | 2 +- kernel/trace/trace.c | 90 ++-- kernel/trace/trace_event_perf.c | 2 +- kernel/trace/trace_events.c | 10 + kernel/trace/trace_events_filter.c | 22 +- kernel/trace/trace_selftest.c | 9 +- kernel/trace/trace_stack.c | 78 ++- kernel/trace/trace_stat.c | 2 + kernel/trace/trace_syscalls.c | 29 +- kernel/tracepoint.c | 13 +- kernel/watchdog.c | 16 +- kernel/workqueue.c | 83 ++- lib/Makefile | 1 + lib/bitmap.c | 25 +- lib/checksum.c | 12 +- lib/decompress_unlzo.c | 2 +- lib/devres.c | 2 +- lib/idr.c | 36 +- lib/lzo/Makefile | 2 +- lib/lzo/lzo1x_compress.c | 349 +++++++------ lib/lzo/lzo1x_decompress.c | 255 --------- lib/lzo/lzo1x_decompress_safe.c | 268 ++++++++++ lib/lzo/lzodefs.h | 38 +- lib/nlattr.c | 15 +- lib/random32.c | 14 +- lib/scatterlist.c | 3 +- lib/show_mem.c | 3 + lib/string.c | 16 + lib/vsprintf.c | 36 +- mm/backing-dev.c | 19 +- mm/filemap.c | 9 +- mm/highmem.c | 13 + mm/huge_memory.c | 20 +- mm/hugetlb.c | 208 ++++++-- mm/internal.h | 1 + mm/kmemleak.c | 23 +- mm/ksm.c | 2 +- mm/memcontrol.c | 8 +- mm/memory-failure.c | 66 ++- mm/memory.c | 175 +++++-- mm/memory_hotplug.c | 46 +- mm/mempolicy.c | 63 ++- mm/migrate.c | 30 +- mm/mlock.c | 2 + mm/mmap.c | 113 +++- mm/mmu_notifier.c | 86 +-- mm/nommu.c | 14 +- mm/oom_kill.c | 17 + mm/page-writeback.c | 67 +-- mm/page_alloc.c | 70 ++- mm/page_cgroup.c | 1 + mm/pagewalk.c | 72 +-- mm/percpu-vm.c | 22 +- mm/percpu.c | 2 +- mm/rmap.c | 78 ++- mm/shmem.c | 143 ++++- mm/slab.c | 8 +- mm/slub.c | 58 +-- mm/sparse.c | 3 + mm/swap.c | 84 ++- mm/truncate.c | 86 ++- mm/vmalloc.c | 14 +- mm/vmstat.c | 6 +- net/8021q/vlan_core.c | 5 +- net/8021q/vlan_dev.c | 31 +- net/8021q/vlan_netlink.c | 2 +- net/9p/client.c | 3 +- net/9p/trans_common.c | 10 +- net/9p/trans_virtio.c | 3 +- net/appletalk/ddp.c | 19 +- net/atm/clip.c | 3 + net/ax25/af_ax25.c | 8 +- net/bluetooth/af_bluetooth.c | 4 - net/bluetooth/hci_conn.c | 16 - net/bluetooth/hci_core.c | 6 +- net/bluetooth/hci_event.c | 21 +- net/bluetooth/hci_sock.c | 2 - net/bluetooth/l2cap_core.c | 95 +++- net/bluetooth/mgmt.c | 21 + net/bluetooth/smp.c | 5 +- net/bridge/br_fdb.c | 6 +- net/bridge/br_if.c | 2 + net/bridge/br_ioctl.c | 2 - net/bridge/br_multicast.c | 32 +- net/bridge/br_netfilter.c | 4 +- net/bridge/br_private.h | 1 + net/bridge/br_stp.c | 31 +- net/bridge/br_stp_if.c | 16 +- net/bridge/br_stp_timer.c | 2 +- net/bridge/netfilter/ebtables.c | 5 +- net/caif/caif_socket.c | 2 - net/caif/cfctrl.c | 3 +- net/caif/chnl_net.c | 1 - net/can/af_can.c | 3 + net/can/gw.c | 6 +- net/ceph/auth.c | 117 ++++- net/ceph/auth_none.c | 6 + net/ceph/auth_x.c | 274 +++++----- net/ceph/auth_x.h | 1 + net/ceph/crypto.c | 169 ++++-- net/ceph/messenger.c | 3 +- net/ceph/mon_client.c | 15 +- net/ceph/osd_client.c | 59 ++- net/ceph/osdmap.c | 2 +- net/compat.c | 35 +- net/core/datagram.c | 44 +- net/core/dev.c | 57 +- net/core/dev_addr_lists.c | 6 +- net/core/drop_monitor.c | 1 - net/core/dst.c | 3 +- net/core/ethtool.c | 2 +- net/core/fib_rules.c | 10 +- net/core/filter.c | 6 +- net/core/flow_dissector.c | 6 +- net/core/iovec.c | 7 +- net/core/neighbour.c | 30 +- net/core/netpoll.c | 9 +- net/core/pktgen.c | 9 +- net/core/rtnetlink.c | 159 +++--- net/core/secure_seq.c | 23 - net/core/skbuff.c | 43 +- net/core/sock.c | 28 +- net/core/sysctl_net_core.c | 21 +- net/decnet/af_decnet.c | 3 + net/dns_resolver/dns_query.c | 4 +- net/ieee802154/6lowpan.c | 4 +- net/ipv4/af_inet.c | 3 + net/ipv4/datagram.c | 2 +- net/ipv4/esp4.c | 6 +- net/ipv4/fib_semantics.c | 2 +- net/ipv4/fib_trie.c | 5 +- net/ipv4/igmp.c | 18 +- net/ipv4/inet_diag.c | 20 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/inetpeer.c | 18 - net/ipv4/ip_fragment.c | 21 +- net/ipv4/ip_gre.c | 2 +- net/ipv4/ip_options.c | 4 + net/ipv4/ip_output.c | 11 +- net/ipv4/ip_sockglue.c | 3 +- net/ipv4/ipip.c | 3 +- net/ipv4/ipmr.c | 9 +- net/ipv4/netfilter/arp_tables.c | 6 +- net/ipv4/netfilter/ip_tables.c | 6 +- net/ipv4/netfilter/nf_defrag_ipv4.c | 5 +- net/ipv4/ping.c | 20 +- net/ipv4/raw.c | 8 +- net/ipv4/route.c | 140 +++-- net/ipv4/syncookies.c | 4 +- net/ipv4/sysctl_net_ipv4.c | 17 +- net/ipv4/tcp.c | 7 +- net/ipv4/tcp_cubic.c | 14 +- net/ipv4/tcp_input.c | 116 +++-- net/ipv4/tcp_ipv4.c | 9 +- net/ipv4/tcp_output.c | 33 +- net/ipv4/tcp_vegas.c | 3 +- net/ipv4/tcp_veno.c | 2 +- net/ipv4/udp.c | 29 +- net/ipv4/xfrm4_mode_tunnel.c | 2 +- net/ipv6/Makefile | 2 +- net/ipv6/addrconf.c | 102 +++- net/ipv6/addrlabel.c | 2 +- net/ipv6/af_inet6.c | 9 + net/ipv6/datagram.c | 8 +- net/ipv6/icmp.c | 12 +- net/ipv6/inet6_hashtables.c | 2 +- net/ipv6/ip6_fib.c | 86 +-- net/ipv6/ip6_output.c | 119 ++--- net/ipv6/ip6_tunnel.c | 1 + net/ipv6/ip6mr.c | 29 +- net/ipv6/mcast.c | 33 +- net/ipv6/ndisc.c | 38 +- net/ipv6/netfilter/ip6_tables.c | 6 +- net/ipv6/output_core.c | 38 ++ net/ipv6/raw.c | 8 +- net/ipv6/reassembly.c | 13 +- net/ipv6/route.c | 125 +++-- net/ipv6/sit.c | 1 + net/ipv6/tcp_ipv6.c | 14 +- net/ipv6/tunnel6.c | 12 +- net/ipv6/udp.c | 43 +- net/ipv6/udp_impl.h | 2 + net/ipv6/udplite.c | 2 +- net/ipv6/xfrm6_output.c | 16 +- net/ipv6/xfrm6_policy.c | 4 +- net/ipx/af_ipx.c | 3 +- net/irda/af_irda.c | 5 +- net/irda/ircomm/ircomm_tty.c | 4 +- net/key/af_key.c | 54 +- net/l2tp/l2tp_ip.c | 4 +- net/l2tp/l2tp_ppp.c | 24 +- net/llc/af_llc.c | 5 +- net/mac80211/agg-rx.c | 8 +- net/mac80211/debugfs_netdev.c | 7 +- net/mac80211/ieee80211_i.h | 27 +- net/mac80211/iface.c | 16 +- net/mac80211/mesh_pathtbl.c | 8 +- net/mac80211/mlme.c | 2 +- net/mac80211/rx.c | 43 +- net/mac80211/scan.c | 19 + net/mac80211/sta_info.c | 4 + net/mac80211/sta_info.h | 9 +- net/mac80211/status.c | 9 +- net/mac80211/tx.c | 28 +- net/mac80211/wep.c | 6 +- net/netfilter/ipvs/ip_vs_core.c | 32 +- net/netfilter/ipvs/ip_vs_ctl.c | 3 + net/netfilter/ipvs/ip_vs_ftp.c | 10 +- net/netfilter/ipvs/ip_vs_pe_sip.c | 6 +- net/netfilter/ipvs/ip_vs_sync.c | 3 + net/netfilter/ipvs/ip_vs_xmit.c | 2 +- net/netfilter/nf_conntrack_core.c | 21 +- net/netfilter/nf_conntrack_expect.c | 3 +- net/netfilter/nf_conntrack_proto_dccp.c | 6 +- net/netfilter/nf_conntrack_sip.c | 2 +- net/netfilter/nf_queue.c | 2 +- net/netfilter/xt_socket.c | 21 +- net/netlabel/netlabel_domainhash.c | 69 +++ net/netlink/af_netlink.c | 2 - net/netrom/af_netrom.c | 4 +- net/nfc/llcp/sock.c | 2 + net/nfc/rawsock.c | 2 - net/openvswitch/datapath.c | 6 +- net/packet/af_packet.c | 177 +++---- net/phonet/datagram.c | 9 +- net/rds/ib.c | 3 +- net/rds/ib_rdma.c | 4 +- net/rds/ib_send.c | 5 +- net/rds/info.c | 2 +- net/rds/iw.c | 3 +- net/rds/recv.c | 2 - net/rds/send.c | 4 +- net/rfkill/core.c | 6 +- net/rose/af_rose.c | 26 +- net/rxrpc/ar-recvmsg.c | 9 +- net/sched/act_ipt.c | 33 +- net/sched/act_mirred.c | 11 +- net/sched/sch_atm.c | 1 + net/sched/sch_cbq.c | 6 +- net/sched/sch_htb.c | 2 +- net/sctp/associola.c | 6 +- net/sctp/auth.c | 6 +- net/sctp/ipv6.c | 42 +- net/sctp/output.c | 5 +- net/sctp/outqueue.c | 9 +- net/sctp/sm_make_chunk.c | 108 ++-- net/sctp/sm_sideeffect.c | 39 +- net/sctp/sm_statefuns.c | 31 +- net/sctp/socket.c | 135 ++++- net/sctp/ulpevent.c | 122 +---- net/socket.c | 172 +++--- net/sunrpc/backchannel_rqst.c | 2 +- net/sunrpc/cache.c | 2 +- net/sunrpc/clnt.c | 9 +- net/sunrpc/sched.c | 13 +- net/sunrpc/svcsock.c | 43 +- net/sunrpc/xdr.c | 9 +- net/sunrpc/xprt.c | 3 + net/sunrpc/xprtrdma/svc_rdma_sendto.c | 11 +- net/sunrpc/xprtrdma/verbs.c | 8 +- net/sunrpc/xprtsock.c | 36 +- net/tipc/bcast.c | 1 + net/tipc/eth_media.c | 15 +- net/tipc/socket.c | 1 + net/unix/af_unix.c | 238 +++++++-- net/unix/diag.c | 1 + net/unix/garbage.c | 12 +- net/wireless/nl80211.c | 30 +- net/wireless/radiotap.c | 11 +- net/wireless/reg.c | 2 +- net/wireless/sme.c | 3 + net/x25/af_x25.c | 18 +- net/xfrm/xfrm_output.c | 2 + scripts/kconfig/streamline_config.pl | 2 +- scripts/kernel-doc | 3 + scripts/mod/file2alias.c | 4 +- scripts/mod/modpost.c | 8 +- scripts/package/builddeb | 9 +- scripts/recordmcount.c | 137 ++++- scripts/recordmcount.h | 6 +- scripts/recordmcount.pl | 1 - scripts/tags.sh | 10 +- security/integrity/evm/evm_main.c | 15 +- security/integrity/ima/ima_policy.c | 1 - security/keys/encrypted-keys/encrypted.c | 5 +- security/keys/gc.c | 10 +- security/keys/keyctl.c | 18 +- security/selinux/hooks.c | 186 +++++-- security/selinux/include/xfrm.h | 13 +- security/selinux/netlabel.c | 6 +- security/selinux/nlmsgtab.c | 6 + security/selinux/selinuxfs.c | 8 +- security/selinux/ss/policydb.c | 22 +- security/selinux/xfrm.c | 53 +- security/smack/smack.h | 10 + security/smack/smack_lsm.c | 24 +- sound/arm/Kconfig | 15 +- sound/arm/pxa2xx-pcm-lib.c | 2 + sound/core/compress_offload.c | 7 +- sound/core/control.c | 82 ++- sound/core/init.c | 1 + sound/core/pcm.c | 4 + sound/core/pcm_compat.c | 2 + sound/core/pcm_lib.c | 10 +- sound/core/pcm_native.c | 16 +- sound/core/seq/seq_dummy.c | 31 -- sound/drivers/aloop.c | 5 +- sound/drivers/pcsp/pcsp.c | 2 +- sound/i2c/other/ak4113.c | 17 +- sound/i2c/other/ak4114.c | 18 +- sound/i2c/other/ak4xxx-adda.c | 2 +- sound/isa/msnd/msnd_pinnacle.c | 4 +- sound/isa/opti9xx/opti92x-ad1848.c | 8 +- sound/oss/Kconfig | 1 + sound/pci/Kconfig | 12 + sound/pci/asihpi/asihpi.c | 3 + sound/pci/atiixp.c | 2 + sound/pci/atiixp_modem.c | 2 + sound/pci/emu10k1/emu10k1.c | 6 +- sound/pci/emu10k1/emu10k1_callback.c | 10 +- sound/pci/emu10k1/emu10k1_main.c | 21 +- sound/pci/emu10k1/emupcm.c | 2 +- sound/pci/emu10k1/emuproc.c | 12 - sound/pci/emu10k1/memory.c | 11 +- sound/pci/hda/hda_codec.c | 26 +- sound/pci/hda/hda_eld.c | 2 +- sound/pci/hda/hda_intel.c | 57 +- sound/pci/hda/patch_conexant.c | 146 ++++-- sound/pci/hda/patch_hdmi.c | 57 +- sound/pci/hda/patch_realtek.c | 42 +- sound/pci/hda/patch_sigmatel.c | 5 +- sound/pci/ice1712/ice1712.c | 15 +- sound/pci/oxygen/xonar_dg.c | 12 +- sound/pci/riptide/riptide.c | 27 +- sound/pci/rme96.c | 41 +- sound/pci/rme9652/hdspm.c | 6 + sound/pci/rme9652/rme9652.c | 2 +- sound/soc/atmel/atmel_ssc_dai.c | 18 +- sound/soc/blackfin/bf5xx-i2s.c | 1 + sound/soc/codecs/88pm860x-codec.c | 3 + sound/soc/codecs/adau1701.c | 2 +- sound/soc/codecs/adav80x.c | 4 +- sound/soc/codecs/ak4641.c | 4 +- sound/soc/codecs/ak4642.c | 2 +- sound/soc/codecs/cs4271.c | 8 +- sound/soc/codecs/cs42l73.c | 6 +- sound/soc/codecs/max98088.c | 4 +- sound/soc/codecs/max98095.c | 4 +- sound/soc/codecs/sgtl5000.c | 16 +- sound/soc/codecs/sgtl5000.h | 4 +- sound/soc/codecs/sigmadsp.c | 7 + sound/soc/codecs/sta32x.c | 74 +-- sound/soc/codecs/wm2000.c | 8 +- sound/soc/codecs/wm8731.c | 8 +- sound/soc/codecs/wm8737.c | 6 +- sound/soc/codecs/wm8741.c | 8 +- sound/soc/codecs/wm8770.c | 4 +- sound/soc/codecs/wm8903.c | 6 +- sound/soc/codecs/wm8903.h | 2 +- sound/soc/codecs/wm8904.c | 6 +- sound/soc/codecs/wm8955.c | 6 +- sound/soc/codecs/wm8958-dsp2.c | 2 +- sound/soc/codecs/wm8960.c | 16 +- sound/soc/codecs/wm8962.c | 45 +- sound/soc/codecs/wm8962.h | 4 + sound/soc/codecs/wm8990.c | 2 + sound/soc/codecs/wm8994.c | 3 +- sound/soc/codecs/wm_hubs.c | 1 + sound/soc/imx/imx-ssi.c | 5 + sound/soc/omap/omap-pcm.c | 4 +- sound/soc/pxa/Kconfig | 2 - sound/soc/pxa/pxa-ssp.c | 4 +- sound/soc/s6000/s6000-pcm.c | 2 + sound/soc/samsung/i2s.c | 2 +- sound/soc/sh/dma-sh7760.c | 4 +- sound/soc/sh/fsi.c | 3 +- sound/soc/soc-core.c | 2 +- sound/soc/soc-dapm.c | 2 +- sound/synth/emux/emux_oss.c | 14 +- sound/synth/emux/emux_seq.c | 29 +- sound/usb/6fire/chip.c | 2 +- sound/usb/6fire/comm.c | 38 +- sound/usb/6fire/comm.h | 2 +- sound/usb/6fire/midi.c | 16 +- sound/usb/6fire/midi.h | 6 +- sound/usb/6fire/pcm.c | 55 +- sound/usb/6fire/pcm.h | 2 +- sound/usb/card.c | 35 +- sound/usb/card.h | 1 + sound/usb/endpoint.c | 3 +- sound/usb/midi.c | 61 ++- sound/usb/misc/ua101.c | 14 +- sound/usb/mixer.c | 22 +- sound/usb/mixer_maps.c | 35 ++ sound/usb/mixer_quirks.c | 42 +- sound/usb/mixer_quirks.h | 4 + sound/usb/quirks-table.h | 153 +++++- sound/usb/quirks.c | 4 +- sound/usb/stream.c | 8 + sound/usb/usbaudio.h | 1 + sound/usb/usx2y/usbusx2yaudio.c | 26 +- sound/usb/usx2y/usx2yhwdeppcm.c | 7 +- tools/perf/Makefile | 4 +- tools/perf/scripts/python/net_dropmonitor.py | 8 +- tools/perf/util/header.c | 22 +- tools/perf/util/map.c | 4 +- tools/perf/util/parse-events.c | 2 +- tools/power/cpupower/utils/cpupower-set.c | 6 +- tools/power/x86/turbostat/turbostat.c | 11 +- tools/usb/ffs-test.c | 4 +- virt/kvm/coalesced_mmio.c | 8 +- virt/kvm/ioapic.c | 7 +- virt/kvm/iommu.c | 29 +- virt/kvm/irq_comm.c | 1 + virt/kvm/kvm_main.c | 79 ++- 2279 files changed, 32598 insertions(+), 14932 deletions(-) create mode 100644 Documentation/lzo.txt delete mode 100644 arch/arm/include/asm/a.out-core.h delete mode 100644 arch/arm/include/asm/a.out.h create mode 100644 arch/arm/mach-pxa/pxa_cplds_irqs.c create mode 100644 arch/sparc/lib/ucmpdi2.c create mode 100644 arch/x86/include/asm/espfix.h create mode 100644 arch/x86/kernel/espfix_64.c create mode 100644 drivers/md/dm-builtin.c create mode 100644 include/linux/compiler-gcc5.h delete mode 100644 lib/lzo/lzo1x_decompress.c create mode 100644 lib/lzo/lzo1x_decompress_safe.c create mode 100644 net/ipv6/output_core.c diff --git a/Documentation/cgroups/cpusets.txt b/Documentation/cgroups/cpusets.txt index cefd3d8bbd11..a52a39f8a8d4 100644 --- a/Documentation/cgroups/cpusets.txt +++ b/Documentation/cgroups/cpusets.txt @@ -345,14 +345,14 @@ the named feature on. The implementation is simple. Setting the flag 'cpuset.memory_spread_page' turns on a per-process flag -PF_SPREAD_PAGE for each task that is in that cpuset or subsequently +PFA_SPREAD_PAGE for each task that is in that cpuset or subsequently joins that cpuset. The page allocation calls for the page cache -is modified to perform an inline check for this PF_SPREAD_PAGE task +is modified to perform an inline check for this PFA_SPREAD_PAGE task flag, and if set, a call to a new routine cpuset_mem_spread_node() returns the node to prefer for the allocation. Similarly, setting 'cpuset.memory_spread_slab' turns on the flag -PF_SPREAD_SLAB, and appropriately marked slab caches will allocate +PFA_SPREAD_SLAB, and appropriately marked slab caches will allocate pages from the node returned by cpuset_mem_spread_node(). The cpuset_mem_spread_node() routine is also simple. It uses the diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt index ab22fe6e73ab..e39a0c0d6daf 100644 --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt @@ -10,8 +10,8 @@ Required properties: Optional properties: - fsl,card-wired : Indicate the card is wired to host permanently -- fsl,cd-internal : Indicate to use controller internal card detection -- fsl,wp-internal : Indicate to use controller internal write protection +- fsl,cd-controller : Indicate to use controller internal card detection +- fsl,wp-controller : Indicate to use controller internal write protection - cd-gpios : Specify GPIOs for card detection - wp-gpios : Specify GPIOs for write protection @@ -21,8 +21,8 @@ esdhc@70004000 { compatible = "fsl,imx51-esdhc"; reg = <0x70004000 0x4000>; interrupts = <1>; - fsl,cd-internal; - fsl,wp-internal; + fsl,cd-controller; + fsl,wp-controller; }; esdhc@70008000 { diff --git a/Documentation/devicetree/bindings/tty/serial/of-serial.txt b/Documentation/devicetree/bindings/tty/serial/of-serial.txt index b8b27b0aca10..3f89cbdc60b6 100644 --- a/Documentation/devicetree/bindings/tty/serial/of-serial.txt +++ b/Documentation/devicetree/bindings/tty/serial/of-serial.txt @@ -10,6 +10,9 @@ Required properties: - "ns16850" - "nvidia,tegra20-uart" - "ibm,qpace-nwp-serial" + - "altr,16550-FIFO32" + - "altr,16550-FIFO64" + - "altr,16550-FIFO128" - "serial" if the port type is unknown. - reg : offset and length of the register set for the device. - interrupts : should contain uart interrupt. diff --git a/Documentation/hwmon/coretemp b/Documentation/hwmon/coretemp index 84d46c0c71a3..eb5502e4af6c 100644 --- a/Documentation/hwmon/coretemp +++ b/Documentation/hwmon/coretemp @@ -6,7 +6,9 @@ Supported chips: Prefix: 'coretemp' CPUID: family 0x6, models 0xe (Pentium M DC), 0xf (Core 2 DC 65nm), 0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm), - 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield) + 0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield), + 0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom), + 0x36 (Cedar Trail Atom) Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide http://softwarecommunity.intel.com/Wiki/Mobility/720.htm @@ -65,6 +67,11 @@ Process Processor TjMax(C) U3400 105 P4505/P4500 90 +32nm Atom Processors + Z2460 90 + D2700/2550/2500 100 + N2850/2800/2650/2600 100 + 45nm Xeon Processors 5400 Quad-Core X5492, X5482, X5472, X5470, X5460, X5450 85 E5472, E5462, E5450/40/30/20/10/05 85 @@ -85,6 +92,9 @@ Process Processor TjMax(C) N475/470/455/450 100 N280/270 90 330/230 125 + E680/660/640/620 90 + E680T/660T/640T/620T 110 + CE4170/4150/4110 110 45nm Core2 Processors Solo ULV SU3500/3300 100 diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index 99d4e442b77d..8bb57d7c12ea 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 @@ -22,6 +22,7 @@ Supported adapters: * Intel Panther Point (PCH) * Intel Lynx Point (PCH) * Intel Lynx Point-LP (PCH) + * Intel Avoton (SOC) Datasheets: Publicly available at the Intel website On Intel Patsburg and later chipsets, both the normal host SMBus controller diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index 475bb4ae0720..65da15796ed3 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 @@ -8,7 +8,7 @@ Supported adapters: Datasheet: Only available via NDA from ServerWorks * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges Datasheet: Not publicly available - * AMD Hudson-2 + * AMD Hudson-2, CZ Datasheet: Not publicly available * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge Datasheet: Publicly available at the SMSC website http://www.smsc.com diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO index 050d37fe6d40..46ed73593465 100644 --- a/Documentation/ja_JP/HOWTO +++ b/Documentation/ja_JP/HOWTO @@ -315,7 +315,7 @@ Andrew Morton が Linux-kernel メーリングリストにカーネルリリー もし、2.6.x.y カーネルが存在しない場合には、番号が一番大きい 2.6.x が 最新の安定版カーネルです。 -2.6.x.y は "stable" チーム でメンテされており、必 +2.6.x.y は "stable" チーム でメンテされており、必 要に応じてリリースされます。通常のリリース期間は 2週間毎ですが、差し迫っ た問題がなければもう少し長くなることもあります。セキュリティ関連の問題 の場合はこれに対してだいたいの場合、すぐにリリースがされます。 diff --git a/Documentation/ja_JP/stable_kernel_rules.txt b/Documentation/ja_JP/stable_kernel_rules.txt index 14265837c4ce..9dbda9b5d21e 100644 --- a/Documentation/ja_JP/stable_kernel_rules.txt +++ b/Documentation/ja_JP/stable_kernel_rules.txt @@ -50,16 +50,16 @@ linux-2.6.29/Documentation/stable_kernel_rules.txt -stable ツリーにパッチを送付する手続き- - - 上記の規則に従っているかを確認した後に、stable@kernel.org にパッチ + - 上記の規則に従っているかを確認した後に、stable@vger.kernel.org にパッチ を送る。 - 送信者はパッチがキューに受け付けられた際には ACK を、却下された場合 には NAK を受け取る。この反応は開発者たちのスケジュールによって、数 日かかる場合がある。 - もし受け取られたら、パッチは他の開発者たちと関連するサブシステムの メンテナーによるレビューのために -stable キューに追加される。 - - パッチに stable@kernel.org のアドレスが付加されているときには、それ + - パッチに stable@vger.kernel.org のアドレスが付加されているときには、それ が Linus のツリーに入る時に自動的に stable チームに email される。 - - セキュリティパッチはこのエイリアス (stable@kernel.org) に送られるべ + - セキュリティパッチはこのエイリアス (stable@vger.kernel.org) に送られるべ きではなく、代わりに security@kernel.org のアドレスに送られる。 レビューサイクル- diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 6b6247a77115..6ba45d2b478b 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -782,6 +782,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted. edd= [EDD] Format: {"off" | "on" | "skip[mbr]"} + efi_no_storage_paranoia [EFI; X86] + Using this parameter you can use more than 50% of + your efi variable storage. Use this parameter only if + you are really sure that your UEFI does sane gc and + fulfills the spec otherwise your board may brick. + eisa_irq_edge= [PARISC,HW] See header of drivers/parisc/eisa.c. @@ -982,6 +988,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. i8042.notimeout [HW] Ignore timeout condition signalled by controller i8042.reset [HW] Reset the controller during init and cleanup i8042.unlock [HW] Unlock (ignore) the keylock + i8042.kbdreset [HW] Reset device connected to KBD port i810= [HW,DRM] @@ -996,6 +1003,20 @@ bytes respectively. Such letter suffixes can also be entirely omitted. i8k.restricted [HW] Allow controlling fans only if SYS_ADMIN capability is set. + i915.invert_brightness= + [DRM] Invert the sense of the variable that is used to + set the brightness of the panel backlight. Normally a + brightness value of 0 indicates backlight switched off, + and the maximum of the brightness value sets the backlight + to maximum brightness. If this parameter is set to 0 + (default) and the machine requires it, or this parameter + is set to 1, a brightness value of 0 sets the backlight + to maximum brightness, and the maximum of the brightness + value switches the backlight off. + -1 -- never invert brightness + 0 -- machine default + 1 -- force brightness inversion + icn= [HW,ISDN] Format: [,[,[,]]] diff --git a/Documentation/lzo.txt b/Documentation/lzo.txt new file mode 100644 index 000000000000..ea45dd3901e3 --- /dev/null +++ b/Documentation/lzo.txt @@ -0,0 +1,164 @@ + +LZO stream format as understood by Linux's LZO decompressor +=========================================================== + +Introduction + + This is not a specification. No specification seems to be publicly available + for the LZO stream format. This document describes what input format the LZO + decompressor as implemented in the Linux kernel understands. The file subject + of this analysis is lib/lzo/lzo1x_decompress_safe.c. No analysis was made on + the compressor nor on any other implementations though it seems likely that + the format matches the standard one. The purpose of this document is to + better understand what the code does in order to propose more efficient fixes + for future bug reports. + +Description + + The stream is composed of a series of instructions, operands, and data. The + instructions consist in a few bits representing an opcode, and bits forming + the operands for the instruction, whose size and position depend on the + opcode and on the number of literals copied by previous instruction. The + operands are used to indicate : + + - a distance when copying data from the dictionary (past output buffer) + - a length (number of bytes to copy from dictionary) + - the number of literals to copy, which is retained in variable "state" + as a piece of information for next instructions. + + Optionally depending on the opcode and operands, extra data may follow. These + extra data can be a complement for the operand (eg: a length or a distance + encoded on larger values), or a literal to be copied to the output buffer. + + The first byte of the block follows a different encoding from other bytes, it + seems to be optimized for literal use only, since there is no dictionary yet + prior to that byte. + + Lengths are always encoded on a variable size starting with a small number + of bits in the operand. If the number of bits isn't enough to represent the + length, up to 255 may be added in increments by consuming more bytes with a + rate of at most 255 per extra byte (thus the compression ratio cannot exceed + around 255:1). The variable length encoding using #bits is always the same : + + length = byte & ((1 << #bits) - 1) + if (!length) { + length = ((1 << #bits) - 1) + length += 255*(number of zero bytes) + length += first-non-zero-byte + } + length += constant (generally 2 or 3) + + For references to the dictionary, distances are relative to the output + pointer. Distances are encoded using very few bits belonging to certain + ranges, resulting in multiple copy instructions using different encodings. + Certain encodings involve one extra byte, others involve two extra bytes + forming a little-endian 16-bit quantity (marked LE16 below). + + After any instruction except the large literal copy, 0, 1, 2 or 3 literals + are copied before starting the next instruction. The number of literals that + were copied may change the meaning and behaviour of the next instruction. In + practice, only one instruction needs to know whether 0, less than 4, or more + literals were copied. This is the information stored in the variable + in this implementation. This number of immediate literals to be copied is + generally encoded in the last two bits of the instruction but may also be + taken from the last two bits of an extra operand (eg: distance). + + End of stream is declared when a block copy of distance 0 is seen. Only one + instruction may encode this distance (0001HLLL), it takes one LE16 operand + for the distance, thus requiring 3 bytes. + + IMPORTANT NOTE : in the code some length checks are missing because certain + instructions are called under the assumption that a certain number of bytes + follow because it has already been garanteed before parsing the instructions. + They just have to "refill" this credit if they consume extra bytes. This is + an implementation design choice independant on the algorithm or encoding. + +Byte sequences + + First byte encoding : + + 0..17 : follow regular instruction encoding, see below. It is worth + noting that codes 16 and 17 will represent a block copy from + the dictionary which is empty, and that they will always be + invalid at this place. + + 18..21 : copy 0..3 literals + state = (byte - 17) = 0..3 [ copy literals ] + skip byte + + 22..255 : copy literal string + length = (byte - 17) = 4..238 + state = 4 [ don't copy extra literals ] + skip byte + + Instruction encoding : + + 0 0 0 0 X X X X (0..15) + Depends on the number of literals copied by the last instruction. + If last instruction did not copy any literal (state == 0), this + encoding will be a copy of 4 or more literal, and must be interpreted + like this : + + 0 0 0 0 L L L L (0..15) : copy long literal string + length = 3 + (L ?: 15 + (zero_bytes * 255) + non_zero_byte) + state = 4 (no extra literals are copied) + + If last instruction used to copy between 1 to 3 literals (encoded in + the instruction's opcode or distance), the instruction is a copy of a + 2-byte block from the dictionary within a 1kB distance. It is worth + noting that this instruction provides little savings since it uses 2 + bytes to encode a copy of 2 other bytes but it encodes the number of + following literals for free. It must be interpreted like this : + + 0 0 0 0 D D S S (0..15) : copy 2 bytes from <= 1kB distance + length = 2 + state = S (copy S literals after this block) + Always followed by exactly one byte : H H H H H H H H + distance = (H << 2) + D + 1 + + If last instruction used to copy 4 or more literals (as detected by + state == 4), the instruction becomes a copy of a 3-byte block from the + dictionary from a 2..3kB distance, and must be interpreted like this : + + 0 0 0 0 D D S S (0..15) : copy 3 bytes from 2..3 kB distance + length = 3 + state = S (copy S literals after this block) + Always followed by exactly one byte : H H H H H H H H + distance = (H << 2) + D + 2049 + + 0 0 0 1 H L L L (16..31) + Copy of a block within 16..48kB distance (preferably less than 10B) + length = 2 + (L ?: 7 + (zero_bytes * 255) + non_zero_byte) + Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S + distance = 16384 + (H << 14) + D + state = S (copy S literals after this block) + End of stream is reached if distance == 16384 + + 0 0 1 L L L L L (32..63) + Copy of small block within 16kB distance (preferably less than 34B) + length = 2 + (L ?: 31 + (zero_bytes * 255) + non_zero_byte) + Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S + distance = D + 1 + state = S (copy S literals after this block) + + 0 1 L D D D S S (64..127) + Copy 3-4 bytes from block within 2kB distance + state = S (copy S literals after this block) + length = 3 + L + Always followed by exactly one byte : H H H H H H H H + distance = (H << 3) + D + 1 + + 1 L L D D D S S (128..255) + Copy 5-8 bytes from block within 2kB distance + state = S (copy S literals after this block) + length = 5 + L + Always followed by exactly one byte : H H H H H H H H + distance = (H << 3) + D + 1 + +Authors + + This document was written by Willy Tarreau on 2014/07/19 during an + analysis of the decompression code available in Linux 3.16-rc5. The code is + tricky, it is possible that this document contains mistakes or that a few + corner cases were overlooked. In any case, please report any doubt, fix, or + proposed updates to the author(s) so that the document can be updated. diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index 75e4fd708ccb..a03239c4163d 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt @@ -24,17 +24,33 @@ For monitoring and control pktgen creates: /proc/net/pktgen/ethX -Viewing threads -=============== -/proc/net/pktgen/kpktgend_0 -Name: kpktgend_0 max_before_softirq: 10000 -Running: -Stopped: eth1 -Result: OK: max_before_softirq=10000 +Kernel threads +============== +Pktgen creates a thread for each CPU with affinity to that CPU. +Which is controlled through procfile /proc/net/pktgen/kpktgend_X. -Most important the devices assigned to thread. Note! A device can only belong -to one thread. +Example: /proc/net/pktgen/kpktgend_0 + Running: + Stopped: eth4@0 + Result: OK: add_device=eth4@0 + +Most important are the devices assigned to the thread. + +The two basic thread commands are: + * add_device DEVICE@NAME -- adds a single device + * rem_device_all -- remove all associated devices + +When adding a device to a thread, a corrosponding procfile is created +which is used for configuring this device. Thus, device names need to +be unique. + +To support adding the same device to multiple threads, which is useful +with multi queue NICs, a the device naming scheme is extended with "@": + device@something + +The part after "@" can be anything, but it is custom to use the thread +number. Viewing devices =============== @@ -42,29 +58,32 @@ Viewing devices Parm section holds configured info. Current hold running stats. Result is printed after run or after interruption. Example: -/proc/net/pktgen/eth1 +/proc/net/pktgen/eth4@0 -Params: count 10000000 min_pkt_size: 60 max_pkt_size: 60 - frags: 0 delay: 0 clone_skb: 1000000 ifname: eth1 + Params: count 100000 min_pkt_size: 60 max_pkt_size: 60 + frags: 0 delay: 0 clone_skb: 64 ifname: eth4@0 flows: 0 flowlen: 0 - dst_min: 10.10.11.2 dst_max: - src_min: src_max: - src_mac: 00:00:00:00:00:00 dst_mac: 00:04:23:AC:FD:82 - udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 - src_mac_count: 0 dst_mac_count: 0 - Flags: -Current: - pkts-sofar: 10000000 errors: 39664 - started: 1103053986245187us stopped: 1103053999346329us idle: 880401us - seq_num: 10000011 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 - cur_saddr: 0x10a0a0a cur_daddr: 0x20b0a0a - cur_udp_dst: 9 cur_udp_src: 9 + queue_map_min: 0 queue_map_max: 0 + dst_min: 192.168.81.2 dst_max: + src_min: src_max: + src_mac: 90:e2:ba:0a:56:b4 dst_mac: 00:1b:21:3c:9d:f8 + udp_src_min: 9 udp_src_max: 109 udp_dst_min: 9 udp_dst_max: 9 + src_mac_count: 0 dst_mac_count: 0 + Flags: UDPSRC_RND NO_TIMESTAMP QUEUE_MAP_CPU + Current: + pkts-sofar: 100000 errors: 0 + started: 623913381008us stopped: 623913396439us idle: 25us + seq_num: 100001 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 + cur_saddr: 192.168.8.3 cur_daddr: 192.168.81.2 + cur_udp_dst: 9 cur_udp_src: 42 + cur_queue_map: flows: 0 -Result: OK: 13101142(c12220741+d880401) usec, 10000000 (60byte,0frags) - 763292pps 390Mb/sec (390805504bps) errors: 39664 + Result: OK: 15430(c15405d25) usec, 100000 (60byte,0frags) + 6480562pps 3110Mb/sec (3110669760bps) errors: 0 -Configuring threads and devices -================================ + +Configuring devices +=================== This is done via the /proc interface easiest done via pgset in the scripts Examples: @@ -177,6 +196,8 @@ Note when adding devices to a specific CPU there good idea to also assign /proc/irq/XX/smp_affinity so the TX-interrupts gets bound to the same CPU. as this reduces cache bouncing when freeing skb's. +Plus using the device flag QUEUE_MAP_CPU, which maps the SKBs TX queue +to the running threads CPU (directly from smp_processor_id()). Current commands and configuration options ========================================== diff --git a/Documentation/networking/rds.txt b/Documentation/networking/rds.txt index c67077cbeb80..e1a3d59bbe0f 100644 --- a/Documentation/networking/rds.txt +++ b/Documentation/networking/rds.txt @@ -62,11 +62,10 @@ Socket Interface ================ AF_RDS, PF_RDS, SOL_RDS - These constants haven't been assigned yet, because RDS isn't in - mainline yet. Currently, the kernel module assigns some constant - and publishes it to user space through two sysctl files - /proc/sys/net/rds/pf_rds - /proc/sys/net/rds/sol_rds + AF_RDS and PF_RDS are the domain type to be used with socket(2) + to create RDS sockets. SOL_RDS is the socket-level to be used + with setsockopt(2) and getsockopt(2) for RDS specific socket + options. fd = socket(PF_RDS, SOCK_SEQPACKET, 0); This creates a new, unbound RDS socket. diff --git a/Documentation/pinctrl.txt b/Documentation/pinctrl.txt index d97bccf46147..d4647168eba0 100644 --- a/Documentation/pinctrl.txt +++ b/Documentation/pinctrl.txt @@ -72,7 +72,6 @@ static struct pinctrl_desc foo_desc = { .name = "foo", .pins = foo_pins, .npins = ARRAY_SIZE(foo_pins), - .maxpin = 63, .owner = THIS_MODULE, }; @@ -166,8 +165,8 @@ static const char *foo_get_group_name(struct pinctrl_dev *pctldev, } static int foo_get_group_pins(struct pinctrl_dev *pctldev, unsigned selector, - unsigned ** const pins, - unsigned * const num_pins) + const unsigned **pins, + unsigned *num_pins) { *pins = (unsigned *) foo_groups[selector].pins; *num_pins = foo_groups[selector].num_pins; @@ -1043,7 +1042,7 @@ The semantics of the pinctrl APIs are: Usually the pin control core handled the get/put pair and call out to the device drivers bookkeeping operations, like checking available functions and -the associated pins, whereas the enable/disable pass on to the pin controller +the associated pins, whereas select_state pass on to the pin controller driver which takes care of activating and/or deactivating the mux setting by quickly poking some registers. @@ -1089,8 +1088,9 @@ function, but with different named in the mapping as described under "Advanced mapping" above. So that for an SPI device, we have two states named "pos-A" and "pos-B". -This snippet first muxes the function in the pins defined by group A, enables -it, disables and releases it, and muxes it in on the pins defined by group B: +This snippet first initializes a state object for both groups (in foo_probe()), +then muxes the function in the pins defined by group A, and finally muxes it in +on the pins defined by group B: #include diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt index b0714d8f678a..8dfb6a5f427d 100644 --- a/Documentation/stable_kernel_rules.txt +++ b/Documentation/stable_kernel_rules.txt @@ -29,6 +29,9 @@ Rules on what kind of patches are accepted, and which ones are not, into the Procedure for submitting patches to the -stable tree: + - If the patch covers files in net/ or drivers/net please follow netdev stable + submission guidelines as described in + Documentation/networking/netdev-FAQ.txt - Send the patch, after verifying that it follows the above rules, to stable@vger.kernel.org. You must note the upstream commit ID in the changelog of your submission, as well as the kernel version you wish diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt index 6d78841fd416..99d8ab9d3834 100644 --- a/Documentation/sysctl/kernel.txt +++ b/Documentation/sysctl/kernel.txt @@ -284,13 +284,24 @@ Default value is "/sbin/hotplug". kptr_restrict: This toggle indicates whether restrictions are placed on -exposing kernel addresses via /proc and other interfaces. When -kptr_restrict is set to (0), there are no restrictions. When -kptr_restrict is set to (1), the default, kernel pointers -printed using the %pK format specifier will be replaced with 0's -unless the user has CAP_SYSLOG. When kptr_restrict is set to -(2), kernel pointers printed using %pK will be replaced with 0's -regardless of privileges. +exposing kernel addresses via /proc and other interfaces. + +When kptr_restrict is set to (0), the default, there are no restrictions. + +When kptr_restrict is set to (1), kernel pointers printed using the %pK +format specifier will be replaced with 0's unless the user has CAP_SYSLOG +and effective user and group ids are equal to the real ids. This is +because %pK checks are done at read() time rather than open() time, so +if permissions are elevated between the open() and the read() (e.g via +a setuid binary) then %pK will not leak kernel pointers to unprivileged +users. Note, this is a temporary solution only. The correct long-term +solution is to do the permission checks at open() time. Consider removing +world read permissions from files that use %pK, and using dmesg_restrict +to protect against uses of %pK in dmesg(8) if leaking kernel pointer +values to unprivileged users is a concern. + +When kptr_restrict is set to (2), kernel pointers printed using +%pK will be replaced with 0's regardless of privileges. ============================================================== diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt index d6498e3cd713..f33a9369e35b 100644 --- a/Documentation/x86/x86_64/mm.txt +++ b/Documentation/x86/x86_64/mm.txt @@ -12,6 +12,8 @@ ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB) ... unused hole ... +ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks +... unused hole ... ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0 ffffffffa0000000 - fffffffffff00000 (=1536 MB) module mapping space diff --git a/Documentation/zh_CN/HOWTO b/Documentation/zh_CN/HOWTO index 7fba5aab9ef9..7599eb38b764 100644 --- a/Documentation/zh_CN/HOWTO +++ b/Documentation/zh_CN/HOWTO @@ -237,7 +237,7 @@ kernel.org网站的pub/linux/kernel/v2.6/目录下找到它。它的开发遵循 如果没有2.6.x.y版本内核存在,那么最新的2.6.x版本内核就相当于是当前的稳定 版内核。 -2.6.x.y版本由“稳定版”小组(邮件地址)维护,一般隔周发 +2.6.x.y版本由“稳定版”小组(邮件地址)维护,一般隔周发 布新版本。 内核源码中的Documentation/stable_kernel_rules.txt文件具体描述了可被稳定 diff --git a/Documentation/zh_CN/stable_kernel_rules.txt b/Documentation/zh_CN/stable_kernel_rules.txt index b5b9b0ab02fd..26ea5ed7cd9c 100644 --- a/Documentation/zh_CN/stable_kernel_rules.txt +++ b/Documentation/zh_CN/stable_kernel_rules.txt @@ -42,7 +42,7 @@ Documentation/stable_kernel_rules.txt 的中文翻译 向稳定版代码树提交补丁的过程: - - 在确认了补丁符合以上的规则后,将补丁发送到stable@kernel.org。 + - 在确认了补丁符合以上的规则后,将补丁发送到stable@vger.kernel.org。 - 如果补丁被接受到队列里,发送者会收到一个ACK回复,如果没有被接受,收 到的是NAK回复。回复需要几天的时间,这取决于开发者的时间安排。 - 被接受的补丁会被加到稳定版本队列里,等待其他开发者的审查。 diff --git a/MAINTAINERS b/MAINTAINERS index c5b99af4b2c2..b0b614fb3dfa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6390,6 +6390,7 @@ STABLE BRANCH M: Greg Kroah-Hartman L: stable@vger.kernel.org S: Supported +F: Documentation/stable_kernel_rules.txt STAGING SUBSYSTEM M: Greg Kroah-Hartman diff --git a/Makefile b/Makefile index f952f46264b0..3ab904e1ea5b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 3 PATCHLEVEL = 4 -SUBLEVEL = 39 +SUBLEVEL = 113 EXTRAVERSION = NAME = Saber-toothed Squirrel @@ -593,6 +593,8 @@ KBUILD_CFLAGS += -fomit-frame-pointer endif endif +KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments) + ifdef CONFIG_DEBUG_INFO KBUILD_CFLAGS += -g KBUILD_AFLAGS += -gdwarf-2 diff --git a/arch/alpha/Makefile b/arch/alpha/Makefile index 4759fe751aa1..2cc3cc519c54 100644 --- a/arch/alpha/Makefile +++ b/arch/alpha/Makefile @@ -12,7 +12,7 @@ NM := $(NM) -B LDFLAGS_vmlinux := -static -N #-relax CHECKFLAGS += -D__alpha__ -m64 -cflags-y := -pipe -mno-fp-regs -ffixed-8 -msmall-data +cflags-y := -pipe -mno-fp-regs -ffixed-8 cflags-y += $(call cc-option, -fno-jump-tables) cpuflags-$(CONFIG_ALPHA_EV4) := -mcpu=ev4 diff --git a/arch/alpha/include/asm/io.h b/arch/alpha/include/asm/io.h index 7a3d38d5ed6b..5ebab5895edb 100644 --- a/arch/alpha/include/asm/io.h +++ b/arch/alpha/include/asm/io.h @@ -489,6 +489,11 @@ extern inline void writeq(u64 b, volatile void __iomem *addr) } #endif +#define ioread16be(p) be16_to_cpu(ioread16(p)) +#define ioread32be(p) be32_to_cpu(ioread32(p)) +#define iowrite16be(v,p) iowrite16(cpu_to_be16(v), (p)) +#define iowrite32be(v,p) iowrite32(cpu_to_be32(v), (p)) + #define inb_p inb #define inw_p inw #define inl_p inl diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c index 53649c7d0068..1a333558f656 100644 --- a/arch/alpha/kernel/pci-sysfs.c +++ b/arch/alpha/kernel/pci-sysfs.c @@ -84,7 +84,7 @@ static int pci_mmap_resource(struct kobject *kobj, if (iomem_is_exclusive(res->start)) return -EINVAL; - pcibios_resource_to_bus(pdev, &bar, res); + pcibios_resource_to_bus(pdev->bus, &bar, res); vma->vm_pgoff += bar.start >> (PAGE_SHIFT - (sparse ? 5 : 0)); mmap_type = res->flags & IORESOURCE_MEM ? pci_mmap_mem : pci_mmap_io; @@ -140,7 +140,7 @@ static int sparse_mem_mmap_fits(struct pci_dev *pdev, int num) long dense_offset; unsigned long sparse_size; - pcibios_resource_to_bus(pdev, &bar, &pdev->resource[num]); + pcibios_resource_to_bus(pdev->bus, &bar, &pdev->resource[num]); /* All core logic chips have 4G sparse address space, except CIA which has 16G (see xxx_SPARSE_MEM and xxx_DENSE_MEM diff --git a/arch/alpha/kernel/sys_nautilus.c b/arch/alpha/kernel/sys_nautilus.c index 4d4c046f708d..1383f8601a93 100644 --- a/arch/alpha/kernel/sys_nautilus.c +++ b/arch/alpha/kernel/sys_nautilus.c @@ -188,6 +188,10 @@ nautilus_machine_check(unsigned long vector, unsigned long la_ptr) extern void free_reserved_mem(void *, void *); extern void pcibios_claim_one_bus(struct pci_bus *); +static struct resource irongate_io = { + .name = "Irongate PCI IO", + .flags = IORESOURCE_IO, +}; static struct resource irongate_mem = { .name = "Irongate PCI MEM", .flags = IORESOURCE_MEM, @@ -209,6 +213,7 @@ nautilus_init_pci(void) irongate = pci_get_bus_and_slot(0, 0); bus->self = irongate; + bus->resource[0] = &irongate_io; bus->resource[1] = &irongate_mem; pci_bus_size_bridges(bus); diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c index 5eecab1a84ef..f153733fb938 100644 --- a/arch/alpha/mm/fault.c +++ b/arch/alpha/mm/fault.c @@ -149,6 +149,8 @@ do_page_fault(unsigned long address, unsigned long mmcsr, if (unlikely(fault & VM_FAULT_ERROR)) { if (fault & VM_FAULT_OOM) goto out_of_memory; + else if (fault & VM_FAULT_SIGSEGV) + goto bad_area; else if (fault & VM_FAULT_SIGBUS) goto do_sigbus; BUG(); diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index a0a5d27aa215..b8ce18f485d3 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "op_impl.h" diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 9e5beb68fa2d..c9c42cf31cb5 100755 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1,7 +1,6 @@ config ARM bool default y - select HAVE_AOUT select HAVE_DMA_API_DEBUG select HAVE_IDE if PCI || ISA || PCMCIA select HAVE_DMA_ATTRS diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 2b5478c777c2..a534c93d2155 100755 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -53,6 +53,14 @@ endif comma = , +# +# The Scalar Replacement of Aggregates (SRA) optimization pass in GCC 4.9 and +# later may result in code being generated that handles signed short and signed +# char struct members incorrectly. So disable it. +# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65932) +# +KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra) + # This selects which instruction set is used. # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes diff --git a/arch/arm/boot/compressed/head-sa1100.S b/arch/arm/boot/compressed/head-sa1100.S index 6179d94dd5c6..3115e313d9f6 100644 --- a/arch/arm/boot/compressed/head-sa1100.S +++ b/arch/arm/boot/compressed/head-sa1100.S @@ -11,6 +11,7 @@ #include .section ".start", "ax" + .arch armv4 __SA1100_start: diff --git a/arch/arm/boot/compressed/head-shark.S b/arch/arm/boot/compressed/head-shark.S index 089c560e07f1..92b56897ed64 100644 --- a/arch/arm/boot/compressed/head-shark.S +++ b/arch/arm/boot/compressed/head-shark.S @@ -18,6 +18,7 @@ .section ".start", "ax" + .arch armv4 b __beginning __ofw_data: .long 0 @ the number of memory blocks diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index adff07672796..77a716bdf4d3 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -10,6 +10,7 @@ */ #include + .arch armv7-a /* * Debugging stuff * diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi index bc5e7d5ddd54..9cc8ed2310e7 100644 --- a/arch/arm/boot/dts/imx27.dtsi +++ b/arch/arm/boot/dts/imx27.dtsi @@ -208,7 +208,7 @@ fec: fec@1002b000 { compatible = "fsl,imx27-fec"; - reg = <0x1002b000 0x4000>; + reg = <0x1002b000 0x1000>; interrupts = <50>; status = "disabled"; }; diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts index 9949e6060dee..6b34b23dbfbc 100644 --- a/arch/arm/boot/dts/imx51-babbage.dts +++ b/arch/arm/boot/dts/imx51-babbage.dts @@ -29,8 +29,8 @@ aips@70000000 { /* aips-1 */ spba@70000000 { esdhc@70004000 { /* ESDHC1 */ - fsl,cd-internal; - fsl,wp-internal; + fsl,cd-controller; + fsl,wp-controller; status = "okay"; }; diff --git a/arch/arm/configs/at91sam9g45_defconfig b/arch/arm/configs/at91sam9g45_defconfig index 606d48f3b8f8..8aab786863df 100644 --- a/arch/arm/configs/at91sam9g45_defconfig +++ b/arch/arm/configs/at91sam9g45_defconfig @@ -173,7 +173,6 @@ CONFIG_MMC=y # CONFIG_MMC_BLOCK_BOUNCE is not set CONFIG_SDIO_UART=m CONFIG_MMC_ATMELMCI=y -CONFIG_MMC_ATMELMCI_DMA=y CONFIG_LEDS_ATMEL_PWM=y CONFIG_LEDS_GPIO=y CONFIG_LEDS_TRIGGER_TIMER=y diff --git a/arch/arm/include/asm/a.out-core.h b/arch/arm/include/asm/a.out-core.h deleted file mode 100644 index 92f10cb5c70c..000000000000 --- a/arch/arm/include/asm/a.out-core.h +++ /dev/null @@ -1,45 +0,0 @@ -/* a.out coredump register dumper - * - * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. - * Written by David Howells (dhowells@redhat.com) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public Licence - * as published by the Free Software Foundation; either version - * 2 of the Licence, or (at your option) any later version. - */ - -#ifndef _ASM_A_OUT_CORE_H -#define _ASM_A_OUT_CORE_H - -#ifdef __KERNEL__ - -#include -#include - -/* - * fill in the user structure for an a.out core dump - */ -static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump) -{ - struct task_struct *tsk = current; - - dump->magic = CMAGIC; - dump->start_code = tsk->mm->start_code; - dump->start_stack = regs->ARM_sp & ~(PAGE_SIZE - 1); - - dump->u_tsize = (tsk->mm->end_code - tsk->mm->start_code) >> PAGE_SHIFT; - dump->u_dsize = (tsk->mm->brk - tsk->mm->start_data + PAGE_SIZE - 1) >> PAGE_SHIFT; - dump->u_ssize = 0; - - memset(dump->u_debugreg, 0, sizeof(dump->u_debugreg)); - - if (dump->start_stack < 0x04000000) - dump->u_ssize = (0x04000000 - dump->start_stack) >> PAGE_SHIFT; - - dump->regs = *regs; - dump->u_fpvalid = dump_fpu (regs, &dump->u_fp); -} - -#endif /* __KERNEL__ */ -#endif /* _ASM_A_OUT_CORE_H */ diff --git a/arch/arm/include/asm/a.out.h b/arch/arm/include/asm/a.out.h deleted file mode 100644 index 083894b2e3bc..000000000000 --- a/arch/arm/include/asm/a.out.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef __ARM_A_OUT_H__ -#define __ARM_A_OUT_H__ - -#include -#include - -struct exec -{ - __u32 a_info; /* Use macros N_MAGIC, etc for access */ - __u32 a_text; /* length of text, in bytes */ - __u32 a_data; /* length of data, in bytes */ - __u32 a_bss; /* length of uninitialized data area for file, in bytes */ - __u32 a_syms; /* length of symbol table data in file, in bytes */ - __u32 a_entry; /* start address */ - __u32 a_trsize; /* length of relocation info for text, in bytes */ - __u32 a_drsize; /* length of relocation info for data, in bytes */ -}; - -/* - * This is always the same - */ -#define N_TXTADDR(a) (0x00008000) - -#define N_TRSIZE(a) ((a).a_trsize) -#define N_DRSIZE(a) ((a).a_drsize) -#define N_SYMSIZE(a) ((a).a_syms) - -#define M_ARM 103 - -#ifndef LIBRARY_START_TEXT -#define LIBRARY_START_TEXT (0x00c00000) -#endif - -#endif /* __A_OUT_GNU_H__ */ diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index abec792aee8d..93b146c46ec9 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h @@ -213,6 +213,7 @@ extern void copy_to_user_page(struct vm_area_struct *, struct page *, static inline void __flush_icache_all(void) { __flush_icache_preferred(); + dsb(); } /* @@ -321,9 +322,7 @@ static inline void flush_anon_page(struct vm_area_struct *vma, } #define ARCH_HAS_FLUSH_KERNEL_DCACHE_PAGE -static inline void flush_kernel_dcache_page(struct page *page) -{ -} +extern void flush_kernel_dcache_page(struct page *); #define flush_dcache_mmap_lock(mapping) \ spin_lock_irq(&(mapping)->tree_lock) diff --git a/arch/arm/include/asm/div64.h b/arch/arm/include/asm/div64.h index fe92ccf1d0b0..a66061aef29c 100644 --- a/arch/arm/include/asm/div64.h +++ b/arch/arm/include/asm/div64.h @@ -156,7 +156,7 @@ /* Select the best insn combination to perform the */ \ /* actual __m * __n / (__p << 64) operation. */ \ if (!__c) { \ - asm ( "umull %Q0, %R0, %1, %Q2\n\t" \ + asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" \ "mov %Q0, #0" \ : "=&r" (__res) \ : "r" (__m), "r" (__n) \ diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h index 64afbd0cb31d..6f21dd776ff3 100644 --- a/arch/arm/include/asm/elf.h +++ b/arch/arm/include/asm/elf.h @@ -117,7 +117,7 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); the loader. We need to make sure that it is out of the way of the program that it will "exec", and that there is sufficient room for the brk. */ -#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) /* When the program starts, a1 contains a pointer to a function to be registered with atexit, as per the SVR4 ABI. A value of 0 means we diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h index 53426c66352a..2dd513bdca23 100644 --- a/arch/arm/include/asm/outercache.h +++ b/arch/arm/include/asm/outercache.h @@ -37,10 +37,10 @@ struct outer_cache_fns { void (*resume)(void); }; -#ifdef CONFIG_OUTER_CACHE - extern struct outer_cache_fns outer_cache; +#ifdef CONFIG_OUTER_CACHE + static inline void outer_inv_range(phys_addr_t start, phys_addr_t end) { if (outer_cache.inv_range) diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 41dc31f834c3..cc5e50fd7fe6 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h @@ -60,6 +60,15 @@ extern void __pgd_error(const char *file, int line, pgd_t); */ #define FIRST_USER_ADDRESS PAGE_SIZE +/* + * Use TASK_SIZE as the ceiling argument for free_pgtables() and + * free_pgd_range() to avoid freeing the modules pmd when LPAE is enabled (pmd + * page shared between user and kernel). + */ +#ifdef CONFIG_ARM_LPAE +#define USER_PGTABLES_CEILING TASK_SIZE +#endif + /* * The pgprot_* and protection_map entries will be fixed up in runtime * to include the cachable and bufferable bits based on memory policy, diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h index 5ac8d3d3e025..50dad6a69c76 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h @@ -54,7 +54,6 @@ struct thread_struct { #define start_thread(regs,pc,sp) \ ({ \ - unsigned long *stack = (unsigned long *)sp; \ memset(regs->uregs, 0, sizeof(regs->uregs)); \ if (current->personality & ADDR_LIMIT_32BIT) \ regs->ARM_cpsr = USR_MODE; \ @@ -65,9 +64,6 @@ struct thread_struct { regs->ARM_cpsr |= PSR_ENDSTATE; \ regs->ARM_pc = pc & ~1; /* pc */ \ regs->ARM_sp = sp; /* sp */ \ - regs->ARM_r2 = stack[2]; /* r2 (envp) */ \ - regs->ARM_r1 = stack[1]; /* r1 (argv) */ \ - regs->ARM_r0 = stack[0]; /* r0 (argc) */ \ nommu_start_thread(regs); \ }) diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h index 0a070e98625d..b04850fdeb5b 100644 --- a/arch/arm/include/asm/uaccess.h +++ b/arch/arm/include/asm/uaccess.h @@ -158,8 +158,9 @@ extern int __put_user_8(void *, unsigned long long); #define put_user(x,p) \ ({ \ unsigned long __limit = current_thread_info()->addr_limit - 1; \ + const typeof(*(p)) __user *__tmp_p = (p); \ register const typeof(*(p)) __r2 asm("r2") = (x); \ - register const typeof(*(p)) __user *__p asm("r0") = (p);\ + register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \ register unsigned long __l asm("r1") = __limit; \ register int __e asm("r0"); \ switch (sizeof(*(__p))) { \ diff --git a/arch/arm/kernel/crash_dump.c b/arch/arm/kernel/crash_dump.c index 90c50d4b43f7..5d1286d51154 100644 --- a/arch/arm/kernel/crash_dump.c +++ b/arch/arm/kernel/crash_dump.c @@ -39,7 +39,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf, if (!csize) return 0; - vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); + vaddr = ioremap(__pfn_to_phys(pfn), PAGE_SIZE); if (!vaddr) return -ENOMEM; diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S index 25188e27a0bf..f2a02c1b02ad 100644 --- a/arch/arm/kernel/entry-header.S +++ b/arch/arm/kernel/entry-header.S @@ -76,26 +76,21 @@ #ifndef CONFIG_THUMB2_KERNEL .macro svc_exit, rpsr msr spsr_cxsf, \rpsr -#if defined(CONFIG_CPU_V6) - ldr r0, [sp] - strex r1, r2, [sp] @ clear the exclusive monitor - ldmib sp, {r1 - pc}^ @ load r1 - pc, cpsr -#elif defined(CONFIG_CPU_32v6K) - clrex @ clear the exclusive monitor - ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr -#else - ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K) + @ We must avoid clrex due to Cortex-A15 erratum #830321 + sub r0, sp, #4 @ uninhabited address + strex r1, r2, [r0] @ clear the exclusive monitor #endif + ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr .endm .macro restore_user_regs, fast = 0, offset = 0 ldr r1, [sp, #\offset + S_PSR] @ get calling cpsr ldr lr, [sp, #\offset + S_PC]! @ get pc msr spsr_cxsf, r1 @ save in spsr_svc -#if defined(CONFIG_CPU_V6) +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K) + @ We must avoid clrex due to Cortex-A15 erratum #830321 strex r1, r2, [sp] @ clear the exclusive monitor -#elif defined(CONFIG_CPU_32v6K) - clrex @ clear the exclusive monitor #endif .if \fast ldmdb sp, {r1 - lr}^ @ get calling r1 - lr @@ -123,7 +118,10 @@ .macro svc_exit, rpsr ldr lr, [sp, #S_SP] @ top of the stack ldrd r0, r1, [sp, #S_LR] @ calling lr and pc - clrex @ clear the exclusive monitor + + @ We must avoid clrex due to Cortex-A15 erratum #830321 + strex r2, r1, [sp, #S_LR] @ clear the exclusive monitor + stmdb lr!, {r0, r1, \rpsr} @ calling lr and rfe context ldmia sp, {r0 - r12} mov sp, lr @@ -132,13 +130,16 @@ .endm .macro restore_user_regs, fast = 0, offset = 0 - clrex @ clear the exclusive monitor mov r2, sp load_user_sp_lr r2, r3, \offset + S_SP @ calling sp, lr ldr r1, [sp, #\offset + S_PSR] @ get calling cpsr ldr lr, [sp, #\offset + S_PC] @ get pc add sp, sp, #\offset + S_SP msr spsr_cxsf, r1 @ save in spsr_svc + + @ We must avoid clrex due to Cortex-A15 erratum #830321 + strex r1, r2, [sp] @ clear the exclusive monitor + .if \fast ldmdb sp, {r1 - r12} @ get calling r1 - r12 .else diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 1c9f9af7c2e5..d82df8b88e56 100755 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -262,6 +262,7 @@ __create_page_tables: /* * Then map boot params address in r2 or the first 1MB (2MB with LPAE) * of ram if boot params address is not specified. + * We map 2 sections in case the ATAGs/DTB crosses a section boundary. */ mov r0, r2, lsr #SECTION_SHIFT movs r0, r0, lsl #SECTION_SHIFT @@ -270,6 +271,8 @@ __create_page_tables: add r3, r3, #PAGE_OFFSET add r3, r4, r3, lsr #(SECTION_SHIFT - PMD_ORDER) orr r6, r7, r0 + str r6, [r3], #1 << PMD_ORDER + add r6, r6, #1 << SECTION_SHIFT str r6, [r3] #ifdef CONFIG_DEBUG_LL diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c index dfcdb9f7c126..5f104b8eddd9 100644 --- a/arch/arm/kernel/machine_kexec.c +++ b/arch/arm/kernel/machine_kexec.c @@ -138,3 +138,10 @@ void machine_kexec(struct kimage *image) soft_restart(reboot_code_buffer_phys); } + +void arch_crash_save_vmcoreinfo(void) +{ +#ifdef CONFIG_ARM_LPAE + VMCOREINFO_CONFIG(ARM_LPAE); +#endif +} diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 36eb9bc48602..2a6deef9f25e 100755 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c @@ -112,7 +112,12 @@ armpmu_map_cache_event(const unsigned (*cache_map) static int armpmu_map_event(const unsigned (*event_map)[PERF_COUNT_HW_MAX], u64 config) { - int mapping = (*event_map)[config]; + int mapping; + + if (config >= PERF_COUNT_HW_MAX) + return -ENOENT; + + mapping = (*event_map)[config]; return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping; } @@ -325,6 +330,9 @@ validate_event(struct pmu_hw_events *hw_events, struct arm_pmu *armpmu = to_arm_pmu(event->pmu); struct pmu *leader_pmu = event->group_leader->pmu; + if (is_software_event(event)) + return 1; + if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF) return 1; @@ -885,6 +893,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs) struct frame_tail __user *tail; + perf_callchain_store(entry, regs->ARM_pc); tail = (struct frame_tail __user *)regs->ARM_fp - 1; while ((entry->nr < PERF_MAX_STACK_DEPTH) && diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index ff6c55df93e6..4894afca6038 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -626,6 +626,7 @@ EXPORT_SYMBOL(kernel_thread); unsigned long get_wchan(struct task_struct *p) { struct stackframe frame; + unsigned long stack_page; int count = 0; if (!p || p == current || p->state == TASK_RUNNING) return 0; @@ -634,9 +635,11 @@ unsigned long get_wchan(struct task_struct *p) frame.sp = thread_saved_sp(p); frame.lr = 0; /* recovered from the stack */ frame.pc = thread_saved_pc(p); + stack_page = (unsigned long)task_stack_page(p); do { - int ret = unwind_frame(&frame); - if (ret < 0) + if (frame.sp < stack_page || + frame.sp >= stack_page + THREAD_SIZE || + unwind_frame(&frame) < 0) return 0; if (!in_sched_functions(frame.pc)) return frame.pc; diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index eb3a2912cb9b..20de3c26ec61 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -437,12 +437,23 @@ setup_return(struct pt_regs *regs, struct k_sigaction *ka, */ thumb = handler & 1; +#if __LINUX_ARM_ARCH__ >= 6 + /* + * Clear the If-Then Thumb-2 execution state. ARM spec + * requires this to be all 000s in ARM mode. Snapdragon + * S4/Krait misbehaves on a Thumb=>ARM signal transition + * without this. + * + * We must do this whenever we are running on a Thumb-2 + * capable CPU, which includes ARMv6T2. However, we elect + * to do this whenever we're on an ARMv6 or later CPU for + * simplicity. + */ + cpsr &= ~PSR_IT_MASK; +#endif + if (thumb) { cpsr |= PSR_T_BIT; -#if __LINUX_ARM_ARCH__ >= 7 - /* clear the If-Then Thumb-2 execution state */ - cpsr &= ~PSR_IT_MASK; -#endif } else cpsr &= ~PSR_T_BIT; } diff --git a/arch/arm/kernel/stacktrace.c b/arch/arm/kernel/stacktrace.c index 00f79e59985b..6582c4adc182 100644 --- a/arch/arm/kernel/stacktrace.c +++ b/arch/arm/kernel/stacktrace.c @@ -31,7 +31,7 @@ int notrace unwind_frame(struct stackframe *frame) high = ALIGN(low, THREAD_SIZE); /* check current frame pointer is within bounds */ - if (fp < (low + 12) || fp + 4 >= high) + if (fp < low + 12 || fp > high - 4) return -EINVAL; /* restore the registers from the stack frame */ @@ -83,13 +83,16 @@ static int save_trace(struct stackframe *frame, void *d) return trace->nr_entries >= trace->max_entries; } -void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) +/* This must be noinline to so that our skip calculation works correctly */ +static noinline void __save_stack_trace(struct task_struct *tsk, + struct stack_trace *trace, unsigned int nosched) { struct stack_trace_data data; struct stackframe frame; data.trace = trace; data.skip = trace->skip; + data.no_sched_functions = nosched; if (tsk != current) { #ifdef CONFIG_SMP @@ -102,7 +105,6 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) trace->entries[trace->nr_entries++] = ULONG_MAX; return; #else - data.no_sched_functions = 1; frame.fp = thread_saved_fp(tsk); frame.sp = thread_saved_sp(tsk); frame.lr = 0; /* recovered from the stack */ @@ -111,11 +113,12 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) } else { register unsigned long current_sp asm ("sp"); - data.no_sched_functions = 0; + /* We don't want this function nor the caller */ + data.skip += 2; frame.fp = (unsigned long)__builtin_frame_address(0); frame.sp = current_sp; frame.lr = (unsigned long)__builtin_return_address(0); - frame.pc = (unsigned long)save_stack_trace_tsk; + frame.pc = (unsigned long)__save_stack_trace; } walk_stackframe(&frame, save_trace, &data); @@ -123,9 +126,14 @@ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) trace->entries[trace->nr_entries++] = ULONG_MAX; } +void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) +{ + __save_stack_trace(tsk, trace, 1); +} + void save_stack_trace(struct stack_trace *trace) { - save_stack_trace_tsk(current, trace); + __save_stack_trace(current, trace, 0); } EXPORT_SYMBOL_GPL(save_stack_trace); #endif diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c index 0322a6699d22..9b1dc88e1196 100755 --- a/arch/arm/kernel/topology.c +++ b/arch/arm/kernel/topology.c @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -27,6 +28,7 @@ struct cputopo_arm cpu_topology[NR_CPUS]; +EXPORT_SYMBOL_GPL(cpu_topology); const struct cpumask *cpu_coregroup_mask(int cpu) { diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index f4dd3ab0d825..6f5ad6433733 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c @@ -41,7 +41,13 @@ #include #endif -static const char *handler[]= { "prefetch abort", "data abort", "address exception", "interrupt" }; +static const char *handler[]= { + "prefetch abort", + "data abort", + "address exception", + "interrupt", + "undefined instruction", +}; void *vectors_page; diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index 650d5923ab83..94b0650ea98f 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S @@ -14,27 +14,15 @@ .text .align 5 - .word 0 - -1: subs r2, r2, #4 @ 1 do we have enough - blt 5f @ 1 bytes to align with? - cmp r3, #2 @ 1 - strltb r1, [r0], #1 @ 1 - strleb r1, [r0], #1 @ 1 - strb r1, [r0], #1 @ 1 - add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) -/* - * The pointer is now aligned and the length is adjusted. Try doing the - * memset again. - */ ENTRY(memset) ands r3, r0, #3 @ 1 unaligned? - bne 1b @ 1 + mov ip, r0 @ preserve r0 as return value + bne 6f @ 1 /* - * we know that the pointer in r0 is aligned to a word boundary. + * we know that the pointer in ip is aligned to a word boundary. */ - orr r1, r1, r1, lsl #8 +1: orr r1, r1, r1, lsl #8 orr r1, r1, r1, lsl #16 mov r3, r1 cmp r2, #16 @@ -43,29 +31,28 @@ ENTRY(memset) #if ! CALGN(1)+0 /* - * We need an extra register for this loop - save the return address and - * use the LR + * We need 2 extra registers for this loop - use r8 and the LR */ - str lr, [sp, #-4]! - mov ip, r1 + stmfd sp!, {r8, lr} + mov r8, r1 mov lr, r1 2: subs r2, r2, #64 - stmgeia r0!, {r1, r3, ip, lr} @ 64 bytes at a time. - stmgeia r0!, {r1, r3, ip, lr} - stmgeia r0!, {r1, r3, ip, lr} - stmgeia r0!, {r1, r3, ip, lr} + stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time. + stmgeia ip!, {r1, r3, r8, lr} + stmgeia ip!, {r1, r3, r8, lr} + stmgeia ip!, {r1, r3, r8, lr} bgt 2b - ldmeqfd sp!, {pc} @ Now <64 bytes to go. + ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go. /* * No need to correct the count; we're only testing bits from now on */ tst r2, #32 - stmneia r0!, {r1, r3, ip, lr} - stmneia r0!, {r1, r3, ip, lr} + stmneia ip!, {r1, r3, r8, lr} + stmneia ip!, {r1, r3, r8, lr} tst r2, #16 - stmneia r0!, {r1, r3, ip, lr} - ldr lr, [sp], #4 + stmneia ip!, {r1, r3, r8, lr} + ldmfd sp!, {r8, lr} #else @@ -74,54 +61,63 @@ ENTRY(memset) * whole cache lines at once. */ - stmfd sp!, {r4-r7, lr} + stmfd sp!, {r4-r8, lr} mov r4, r1 mov r5, r1 mov r6, r1 mov r7, r1 - mov ip, r1 + mov r8, r1 mov lr, r1 cmp r2, #96 - tstgt r0, #31 + tstgt ip, #31 ble 3f - and ip, r0, #31 - rsb ip, ip, #32 - sub r2, r2, ip - movs ip, ip, lsl #(32 - 4) - stmcsia r0!, {r4, r5, r6, r7} - stmmiia r0!, {r4, r5} - tst ip, #(1 << 30) - mov ip, r1 - strne r1, [r0], #4 + and r8, ip, #31 + rsb r8, r8, #32 + sub r2, r2, r8 + movs r8, r8, lsl #(32 - 4) + stmcsia ip!, {r4, r5, r6, r7} + stmmiia ip!, {r4, r5} + tst r8, #(1 << 30) + mov r8, r1 + strne r1, [ip], #4 3: subs r2, r2, #64 - stmgeia r0!, {r1, r3-r7, ip, lr} - stmgeia r0!, {r1, r3-r7, ip, lr} + stmgeia ip!, {r1, r3-r8, lr} + stmgeia ip!, {r1, r3-r8, lr} bgt 3b - ldmeqfd sp!, {r4-r7, pc} + ldmeqfd sp!, {r4-r8, pc} tst r2, #32 - stmneia r0!, {r1, r3-r7, ip, lr} + stmneia ip!, {r1, r3-r8, lr} tst r2, #16 - stmneia r0!, {r4-r7} - ldmfd sp!, {r4-r7, lr} + stmneia ip!, {r4-r7} + ldmfd sp!, {r4-r8, lr} #endif 4: tst r2, #8 - stmneia r0!, {r1, r3} + stmneia ip!, {r1, r3} tst r2, #4 - strne r1, [r0], #4 + strne r1, [ip], #4 /* * When we get here, we've got less than 4 bytes to zero. We * may have an unaligned pointer as well. */ 5: tst r2, #2 - strneb r1, [r0], #1 - strneb r1, [r0], #1 + strneb r1, [ip], #1 + strneb r1, [ip], #1 tst r2, #1 - strneb r1, [r0], #1 + strneb r1, [ip], #1 mov pc, lr + +6: subs r2, r2, #4 @ 1 do we have enough + blt 5b @ 1 bytes to align with? + cmp r3, #2 @ 1 + strltb r1, [ip], #1 @ 1 + strleb r1, [ip], #1 @ 1 + strb r1, [ip], #1 @ 1 + add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3)) + b 1b ENDPROC(memset) diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h index 89f56f3a802e..8c3f8e89d2ae 100644 --- a/arch/arm/mach-at91/pm.h +++ b/arch/arm/mach-at91/pm.h @@ -38,7 +38,7 @@ static inline void at91rm9200_standby(void) " mcr p15, 0, %0, c7, c0, 4\n\t" " str %5, [%1, %2]" : - : "r" (0), "r" (AT91_BASE_SYS), "r" (AT91RM9200_SDRAMC_LPR), + : "r" (0), "r" (at91_ramc_base[0]), "r" (AT91RM9200_SDRAMC_LPR), "r" (1), "r" (AT91RM9200_SDRAMC_SRR), "r" (lpr)); } diff --git a/arch/arm/mach-at91/sam9_smc.c b/arch/arm/mach-at91/sam9_smc.c index 99a0a1d2b7dc..b26156bf15db 100644 --- a/arch/arm/mach-at91/sam9_smc.c +++ b/arch/arm/mach-at91/sam9_smc.c @@ -101,7 +101,7 @@ static void sam9_smc_cs_read(void __iomem *base, /* Pulse register */ val = __raw_readl(base + AT91_SMC_PULSE); - config->nwe_setup = val & AT91_SMC_NWEPULSE; + config->nwe_pulse = val & AT91_SMC_NWEPULSE; config->ncs_write_pulse = (val & AT91_SMC_NCS_WRPULSE) >> 8; config->nrd_pulse = (val & AT91_SMC_NRDPULSE) >> 16; config->ncs_read_pulse = (val & AT91_SMC_NCS_RDPULSE) >> 24; diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c index 55293a78cfac..5db5174c4a55 100644 --- a/arch/arm/mach-at91/setup.c +++ b/arch/arm/mach-at91/setup.c @@ -326,7 +326,7 @@ static void at91_dt_rstc(void) of_id = of_match_node(rstc_ids, np); if (!of_id) - panic("AT91: rtsc no restart function availlable\n"); + panic("AT91: rtsc no restart function available\n"); arm_pm_restart = of_id->data; diff --git a/arch/arm/mach-dove/common.c b/arch/arm/mach-dove/common.c index bda7aca04ca0..18f9e710dc50 100644 --- a/arch/arm/mach-dove/common.c +++ b/arch/arm/mach-dove/common.c @@ -90,7 +90,7 @@ void __init dove_ge00_init(struct mv643xx_eth_platform_data *eth_data) { orion_ge00_init(eth_data, DOVE_GE00_PHYS_BASE, IRQ_DOVE_GE00_SUM, - 0, get_tclk()); + 0, get_tclk(), 1600); } /***************************************************************************** diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c index 3e6aaa6361da..909e866a6872 100644 --- a/arch/arm/mach-footbridge/common.c +++ b/arch/arm/mach-footbridge/common.c @@ -15,6 +15,7 @@ #include #include #include +#include