1. 28 2月, 2015 1 次提交
  2. 27 2月, 2015 6 次提交
    • M
      arm64: Fix text patching logic when using fixmap · f6242cac
      Marc Zyngier 提交于
      Patch 2f896d58 ("arm64: use fixmap for text patching") changed
      the way we patch the kernel text, using a fixmap when the kernel or
      modules are flagged as read only.
      
      Unfortunately, a flaw in the logic makes it fall over when patching
      modules without CONFIG_DEBUG_SET_MODULE_RONX enabled:
      
      [...]
      [   32.032636] Call trace:
      [   32.032716] [<fffffe00003da0dc>] __copy_to_user+0x2c/0x60
      [   32.032837] [<fffffe0000099f08>] __aarch64_insn_write+0x94/0xf8
      [   32.033027] [<fffffe000009a0a0>] aarch64_insn_patch_text_nosync+0x18/0x58
      [   32.033200] [<fffffe000009c3ec>] ftrace_modify_code+0x58/0x84
      [   32.033363] [<fffffe000009c4e4>] ftrace_make_nop+0x3c/0x58
      [   32.033532] [<fffffe0000164420>] ftrace_process_locs+0x3d0/0x5c8
      [   32.033709] [<fffffe00001661cc>] ftrace_module_init+0x28/0x34
      [   32.033882] [<fffffe0000135148>] load_module+0xbb8/0xfc4
      [   32.034044] [<fffffe0000135714>] SyS_finit_module+0x94/0xc4
      [...]
      
      This is triggered by the use of virt_to_page() on a module address,
      which ends to pointing to Nowhereland if you're lucky, or corrupt
      your precious data if not.
      
      This patch fixes the logic by mimicking what is done on arm:
      - If we're patching a module and CONFIG_DEBUG_SET_MODULE_RONX is set,
        use vmalloc_to_page().
      - If we're patching the kernel and CONFIG_DEBUG_RODATA is set,
        use virt_to_page().
      - Otherwise, use the provided address, as we can write to it directly.
      
      Tested on 4.0-rc1 as a KVM guest.
      Reported-by: NRichard W.M. Jones <rjones@redhat.com>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NLaura Abbott <lauraa@codeaurora.org>
      Tested-by: NRichard W.M. Jones <rjones@redhat.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      f6242cac
    • A
      arm64: crypto: increase AES interleave to 4x · 0eee0fbd
      Ard Biesheuvel 提交于
      This patch increases the interleave factor for parallel AES modes
      to 4x. This improves performance on Cortex-A57 by ~35%. This is
      due to the 3-cycle latency of AES instructions on the A57's
      relatively deep pipeline (compared to Cortex-A53 where the AES
      instruction latency is only 2 cycles).
      
      At the same time, disable inline expansion of the core AES functions,
      as the performance benefit of this feature is negligible.
      
        Measured on AMD Seattle (using tcrypt.ko mode=500 sec=1):
      
        Baseline (2x interleave, inline expansion)
        ------------------------------------------
        testing speed of async cbc(aes) (cbc-aes-ce) decryption
        test 4 (128 bit key, 8192 byte blocks): 95545 operations in 1 seconds
        test 14 (256 bit key, 8192 byte blocks): 68496 operations in 1 seconds
      
        This patch (4x interleave, no inline expansion)
        -----------------------------------------------
        testing speed of async cbc(aes) (cbc-aes-ce) decryption
        test 4 (128 bit key, 8192 byte blocks): 124735 operations in 1 seconds
        test 14 (256 bit key, 8192 byte blocks): 92328 operations in 1 seconds
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      0eee0fbd
    • F
      arm64: enable PTE type bit in the mask for pte_modify · 6910fa16
      Feng Kan 提交于
      Caught during Trinity testing. The pte_modify does not allow
      modification for PTE type bit. This cause the test to hang
      the system. It is found that the PTE can't transit from an
      inaccessible page (b00) to a valid page (b11) because the mask
      does not allow it. This happens when a big block of mmaped
      memory is set the PROT_NONE, then the a small piece is broken
      off and set to PROT_WRITE | PROT_READ cause a huge page split.
      Signed-off-by: NFeng Kan <fkan@apm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      6910fa16
    • Y
      arm64: mm: remove unused functions and variable protoypes · 06ff87ba
      Yingjoe Chen 提交于
      The functions __cpu_flush_user_tlb_range and __cpu_flush_kern_tlb_range
      were removed in commit fa48e6f7 'arm64: mm: Optimise tlb flush logic
      where we have >4K granule'. Global variable cpu_tlb was never used in
      arm64.
      
      Remove them.
      Signed-off-by: NYingjoe Chen <yingjoe.chen@mediatek.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      06ff87ba
    • W
      arm64: psci: move psci firmware calls out of line · f5e0a12c
      Will Deacon 提交于
      An arm64 allmodconfig fails to build with GCC 5 due to __asmeq
      assertions in the PSCI firmware calling code firing due to mcount
      preambles breaking our assumptions about register allocation of function
      arguments:
      
        /tmp/ccDqJsJ6.s: Assembler messages:
        /tmp/ccDqJsJ6.s:60: Error: .err encountered
        /tmp/ccDqJsJ6.s:61: Error: .err encountered
        /tmp/ccDqJsJ6.s:62: Error: .err encountered
        /tmp/ccDqJsJ6.s:99: Error: .err encountered
        /tmp/ccDqJsJ6.s:100: Error: .err encountered
        /tmp/ccDqJsJ6.s:101: Error: .err encountered
      
      This patch fixes the issue by moving the PSCI calls out-of-line into
      their own assembly files, which are safe from the compiler's meddling
      fingers.
      Reported-by: NAndy Whitcroft <apw@canonical.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      f5e0a12c
    • N
      arm64: vdso: minor ABI fix for clock_getres · e1b6b6ce
      Nathan Lynch 提交于
      The vdso implementation of clock_getres currently returns 0 (success)
      whenever a null timespec is provided by the caller, regardless of the
      clock id supplied.
      
      This behavior is incorrect.  It should fall back to syscall when an
      unrecognized clock id is passed, even when the timespec argument is
      null.  This ensures that clock_getres always returns an error for
      invalid clock ids.
      Signed-off-by: NNathan Lynch <nathan_lynch@mentor.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      e1b6b6ce
  3. 23 2月, 2015 24 次提交
  4. 22 2月, 2015 9 次提交
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · a135c717
      Linus Torvalds 提交于
      Pull MIPS updates from Ralf Baechle:
       "This is the main pull request for MIPS:
      
         - a number of fixes that didn't make the 3.19 release.
      
         - a number of cleanups.
      
         - preliminary support for Cavium's Octeon 3 SOCs which feature up to
           48 MIPS64 R3 cores with FPU and hardware virtualization.
      
         - support for MIPS R6 processors.
      
           Revision 6 of the MIPS architecture is a major revision of the MIPS
           architecture which does away with many of original sins of the
           architecture such as branch delay slots.  This and other changes in
           R6 require major changes throughout the entire MIPS core
           architecture code and make up for the lion share of this pull
           request.
      
         - finally some preparatory work for eXtendend Physical Address
           support, which allows support of up to 40 bit of physical address
           space on 32 bit processors"
      
           [ Ahh, MIPS can't leave the PAE brain damage alone.  It's like
             every CPU architect has to make that mistake, but pee in the snow
             by changing the TLA.  But whether it's called PAE, LPAE or XPA,
             it's horrid crud   - Linus ]
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (114 commits)
        MIPS: sead3: Corrected get_c0_perfcount_int
        MIPS: mm: Remove dead macro definitions
        MIPS: OCTEON: irq: add CIB and other fixes
        MIPS: OCTEON: Don't do acknowledge operations for level triggered irqs.
        MIPS: OCTEON: More OCTEONIII support
        MIPS: OCTEON: Remove setting of processor specific CVMCTL icache bits.
        MIPS: OCTEON: Core-15169 Workaround and general CVMSEG cleanup.
        MIPS: OCTEON: Update octeon-model.h code for new SoCs.
        MIPS: OCTEON: Implement DCache errata workaround for all CN6XXX
        MIPS: OCTEON: Add little-endian support to asm/octeon/octeon.h
        MIPS: OCTEON: Implement the core-16057 workaround
        MIPS: OCTEON: Delete unused COP2 saving code
        MIPS: OCTEON: Use correct instruction to read 64-bit COP0 register
        MIPS: OCTEON: Save and restore CP2 SHA3 state
        MIPS: OCTEON: Fix FP context save.
        MIPS: OCTEON: Save/Restore wider multiply registers in OCTEON III CPUs
        MIPS: boot: Provide more uImage options
        MIPS: Remove unneeded #ifdef __KERNEL__ from asm/processor.h
        MIPS: ip22-gio: Remove legacy suspend/resume support
        mips: pci: Add ifdef around pci_proc_domain
        ...
      a135c717
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 21770332
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Arnd Bergmann:
       "A few fixes that came in too late to make it into the first set of
        pull requests but would still be nice to have in -rc1.
      
        The majority of these are trivial build fixes for bugs that I found
        myself using randconfig testing, and a set of two patches from Uwe to
        mark DT strings as 'const' where appropriate, to resolve inconsistent
        section attributes"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: make of_device_ids const
        ARM: make arrays containing machine compatible strings const
        ARM: mm: Remove Kconfig symbol CACHE_PL310
        ARM: rockchip: force built-in regulator support for PM
        ARM: mvebu: build armada375-smp code conditionally
        ARM: sti: always enable RESET_CONTROLLER
        ARM: rockchip: make rockchip_suspend_init conditional
        ARM: ixp4xx: fix {in,out}s{bwl} data types
        ARM: prima2: do not select SMP_ON_UP
        ARM: at91: fix pm declarations
        ARM: davinci: multi-soc kernels require AUTO_ZRELADDR
        ARM: davinci: davinci_cfg_reg cannot be init
        ARM: BCM: put back ARCH_MULTI_V7 dependency for mobile
        ARM: vexpress: use ARM_CPU_SUSPEND if needed
        ARM: dts: add I2C device nodes for Broadcom Cygnus
        ARM: dts: BCM63xx: fix L2 cache properties
      21770332
    • L
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · c8c6c9ba
      Linus Torvalds 提交于
      Pull misc SCSI patches from James Bottomley:
       "This is a short patch set representing a couple of left overs from the
        merge window (debug removal and MAINTAINER changes).
      
        Plus one merge window regression (the local workqueue for hpsa) and a
        set of bug fixes for several issues (two for scsi-mq and the rest an
        assortment of long standing stuff, all cc'd to stable)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        sg: fix EWOULDBLOCK errors with scsi-mq
        sg: fix unkillable I/O wait deadlock with scsi-mq
        sg: fix read() error reporting
        wd719x: add missing .module to wd719x_template
        hpsa: correct compiler warnings introduced by hpsa-add-local-workqueue patch
        fixed invalid assignment of 64bit mask to host dma_boundary for scatter gather segment boundary limit.
        fcoe: Transition maintainership to Vasu
        am53c974: remove left-over debugging code
      c8c6c9ba
    • L
      Merge tag 'xfs-pnfs-for-linus-3.20-rc1' of... · 93aaa830
      Linus Torvalds 提交于
      Merge tag 'xfs-pnfs-for-linus-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs
      
      Pull xfs pnfs block layout support from Dave Chinner:
       "This contains the changes to XFS needed to support the PNFS block
        layout server that you pulled in through Bruce's NFS server tree
        merge.
      
        I originally thought that I'd need to merge changes into the NFS
        server side, but Bruce had already picked them up and so this is
        purely changes to the fs/xfs/ codebase.
      
        Summary:
      
        This update contains the implementation of the PNFS server export
        methods that enable use of XFS filesystems as a block layout target"
      
      * tag 'xfs-pnfs-for-linus-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs:
        xfs: recall pNFS layouts on conflicting access
        xfs: implement pNFS export operations
      93aaa830
    • L
      Merge tag 'nfs-for-3.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 24a52e41
      Linus Torvalds 提交于
      Pull more NFS client updates from Trond Myklebust:
       "Highlights include:
      
         - Fix a use-after-free in decode_cb_sequence_args()
         - Fix a compile error when #undef CONFIG_PROC_FS
         - NFSv4.1 backchannel spinlocking issue
         - Cleanups in the NFS unstable write code requested by Linus
         - NFSv4.1 fix issues when the server denies our backchannel request
         - Cleanups in create_session and bind_conn_to_session"
      
      * tag 'nfs-for-3.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        NFSv4.1: Clean up bind_conn_to_session
        NFSv4.1: Always set up a forward channel when binding the session
        NFSv4.1: Don't set up a backchannel if the server didn't agree to do so
        NFSv4.1: Clean up create_session
        pnfs: Refactor the *_layout_mark_request_commit to use pnfs_layout_mark_request_commit
        NFSv4: Kill unused nfs_inode->delegation_state field
        NFS: struct nfs_commit_info.lock must always point to inode->i_lock
        nfs: Can call nfs_clear_page_commit() instead
        nfs: Provide and use helper functions for marking a page as unstable
        SUNRPC: Always manipulate rpc_rqst::rq_bc_pa_list under xprt->bc_pa_lock
        SUNRPC: Fix a compile error when #undef CONFIG_PROC_FS
        NFSv4.1: Convert open-coded array allocation calls to kmalloc_array()
        NFSv4.1: Fix a kfree() of uninitialised pointers in decode_cb_sequence_args
      24a52e41
    • L
      Merge tag 'pm+acpi-3.20-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · cd50b70c
      Linus Torvalds 提交于
      Pull one more batch of power management and ACPI updates from Rafael Wysocki:
       "These are mostly fixes on top of the previously merged recent PM and
        ACPI material.
      
        First, one commit that broke the ACPI LPSS (Low-Power Subsystem)
        driver on a Dell box is reverted and there are two stable-candidate
        fixes for that driver.  Another fix cleans up two recently added ACPI
        EC messages that look odd and the printk level of a noisy debug
        message in the core ACPI resources handling code is reduced.
      
        In addition to that we have two stable-candidate fixes for the s3c
        cpufreq driver, two cpuidle powernv driver updates related to Device
        Trees and a PNP subsystem cleanup that will allow us to get rid of
        some old ugliness going forward.  Also there is a new blacklist entry
        for the ACPI backlight code.
      
        Specifics:
      
         - Revert a recent ACPI LPSS driver commit that prevented the touchpad
           driver from loading on Dell XPS13 (Jarkko Nikula).
      
         - Make the ACPI LPSS driver disable the I2C controllers and deassert
           SPI host controllers resets at startup on Intel BayTrail and
           Braswell SoCs in case they have been left in wrong states by the
           platform firmware which then may casuse fatal controller driver
           failures during resume from hibernation (Mika Westerberg).
      
         - Make two recently added ACPI EC messages look better (Scot Doyle).
      
         - Reduce the printk level of a recently added debug message related
           to ACPI resources that may become noisy in some cases (Rafael J
           Wysocki).
      
         - Add a new ACPI backlight blacklist entry for Samsung Series 9
           (900X3C/900X3D/900X3E/900X4C/900X4D) laptops where the native
           backlight interface doesn't work while the ACPI based one does
           (Jens Reyer).
      
         - Make the PNP sybsystem's core code use __request_region() followed
           by __release_region() instead of __check_region() which then will
           allow us to get rid of the latter as it has no more users (Jakub
           Sitnicki).
      
         - Fix a build breakage and an issue with two __init functions that
           may be called after initialization in the s3c cpufreq driver (Arnd
           Bergmann).
      
         - Make the powernv cpuidle driver read target_residency values for
           idle states from a Device Tree (as we have the suitable DT bindings
           for that now) and improve the parsing of the powermgmt DT node in
           that driver (Preeti U Murthy)"
      
      * tag 'pm+acpi-3.20-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: powernv: Avoid endianness conversions while parsing DT
        cpufreq: s3c: remove last use of resume_clocks callback
        cpufreq: s3c: remove incorrect __init annotations
        ACPI / LPSS: Deassert resets for SPI host controllers on Braswell
        ACPI / LPSS: Always disable I2C host controllers
        ACPI / resources: Change pr_info() to pr_debug() for debug information
        ACPI / video: Disable native backlight on Samsung Series 9 laptops
        cpuidle: powernv: Read target_residency value of idle states from DT if available
        Revert "ACPI / LPSS: Remove non-existing clock control from Intel Lynxpoint I2C"
        ACPI / EC: Remove non-standard log emphasis
        PNP: Switch from __check_region() to __request_region()
      cd50b70c
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 2bfedd1d
      Linus Torvalds 提交于
      Pull followup block layer updates from Jens Axboe:
       "Two things in this pull request:
      
         - A block throttle oops fix (marked for stable) from Thadeu.
      
         - The NVMe fixes/features queued up for 3.20, but merged later in the
           process.  From Keith.  We should have gotten this merged earlier,
           we're ironing out the kinks in the process.  Will be ready for the
           initial pull next series"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-throttle: check stats_cpu before reading it from sysfs
        NVMe: Fix potential corruption on sync commands
        NVMe: Remove unused variables
        NVMe: Fix scsi mode select llbaa setting
        NVMe: Fix potential corruption during shutdown
        NVMe: Asynchronous controller probe
        NVMe: Register management handle under nvme class
        NVMe: Update SCSI Inquiry VPD 83h translation
        NVMe: Metadata format support
      2bfedd1d
    • L
      Merge tag 'dm-3.20-changes-2' of... · a911dcdb
      Linus Torvalds 提交于
      Merge tag 'dm-3.20-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull more device mapper changes from Mike Snitzer:
      
      - Significant dm-crypt CPU scalability performance improvements thanks
        to changes that enable effective use of an unbound workqueue across
        all available CPUs.  A large battery of tests were performed to
        validate these changes, summary of results is available here:
        https://www.redhat.com/archives/dm-devel/2015-February/msg00106.html
      
      - A few additional stable fixes (to DM core, dm-snapshot and dm-mirror)
        and a small fix to the dm-space-map-disk.
      
      * tag 'dm-3.20-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm snapshot: fix a possible invalid memory access on unload
        dm: fix a race condition in dm_get_md
        dm crypt: sort writes
        dm crypt: add 'submit_from_crypt_cpus' option
        dm crypt: offload writes to thread
        dm crypt: remove unused io_pool and _crypt_io_pool
        dm crypt: avoid deadlock in mempools
        dm crypt: don't allocate pages for a partial request
        dm crypt: use unbound workqueue for request processing
        dm io: reject unsupported DISCARD requests with EOPNOTSUPP
        dm mirror: do not degrade the mirror on discard error
        dm space map disk: fix sm_disk_count_is_more_than_one()
      a911dcdb
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · e20d3ef5
      Linus Torvalds 提交于
      Pull SCSI target updates from Nicholas Bellinger:
       "The highlights this round include:
      
         - Update vhost-scsi to support F_ANY_LAYOUT using mm/iov_iter.c
           logic, and signal VERSION_1 support (MST + Viro + nab)
      
         - Fix iscsi/iser-target to remove problematic active_ts_set usage
           (Gavin Guo)
      
         - Update iscsi/iser-target to support multi-sequence sendtargets
           (Sagi)
      
         - Fix original PR_APTPL_BUF_LEN 8k size limitation (Martin Svec)
      
         - Add missing WRITE_SAME end-of-device sanity check (Bart)
      
         - Check for LBA + sectors wrap-around in sbc_parse_cdb() (nab)
      
         - Other various minor SPC/SBC compliance fixes based upon Ronnie
           Sahlberg test suite (nab)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (32 commits)
        target: Set LBPWS10 bit in Logical Block Provisioning EVPD
        target: Fail UNMAP when emulate_tpu=0
        target: Fail WRITE_SAME w/ UNMAP=1 when emulate_tpws=0
        target: Add sanity checks for DPO/FUA bit usage
        target: Perform PROTECT sanity checks for WRITE_SAME
        target: Fail I/O with PROTECT bit when protection is unsupported
        target: Check for LBA + sectors wrap-around in sbc_parse_cdb
        target: Add missing WRITE_SAME end-of-device sanity check
        iscsi-target: Avoid IN_LOGOUT failure case for iser-target
        target: Fix PR_APTPL_BUF_LEN buffer size limitation
        iscsi-target: Drop problematic active_ts_list usage
        iscsi/iser-target: Support multi-sequence sendtargets text response
        iser-target: Remove duplicate function names
        vhost/scsi: potential memory corruption
        vhost/scsi: Global tcm_vhost -> vhost_scsi rename
        vhost/scsi: Drop left-over scsi_tcq.h include
        vhost/scsi: Set VIRTIO_F_ANY_LAYOUT + VIRTIO_F_VERSION_1 feature bits
        vhost/scsi: Add ANY_LAYOUT support in vhost_scsi_handle_vq
        vhost/scsi: Add ANY_LAYOUT iov -> sgl mapping prerequisites
        vhost/scsi: Change vhost_scsi_map_to_sgl to accept iov ptr + len
        ...
      e20d3ef5