1. 24 Jan, 2014 40 commits
    • Shane Huang's avatar
      i2c: piix4: Add support for AMD ML and CZ SMBus changes · 032f708b
      Shane Huang authored
      The locations of SMBus register base address and enablement bit are changed
      from AMD ML, which need this patch to be supported.
      Signed-off-by: default avatarShane Huang <shane.huang@amd.com>
      Reviewed-by: default avatarJean Delvare <khali@linux-fr.org>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Cc: stable@vger.kernel.org
      032f708b
    • Linus Torvalds's avatar
      Merge branch 'akpm' (incoming from Andrew) · 3aacd625
      Linus Torvalds authored
      Merge second patch-bomb from Andrew Morton:
       - various misc bits
       - the rest of MM
       - add generic fixmap.h, use it
       - backlight updates
       - dynamic_debug updates
       - printk() updates
       - checkpatch updates
       - binfmt_elf
       - ramfs
       - init/
       - autofs4
       - drivers/rtc
       - nilfs
       - hfsplus
       - Documentation/
       - coredump
       - procfs
       - fork
       - exec
       - kexec
       - kdump
       - partitions
       - rapidio
       - rbtree
       - userns
       - memstick
       - w1
       - decompressors
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (197 commits)
        lib/decompress_unlz4.c: always set an error return code on failures
        romfs: fix returm err while getting inode in fill_super
        drivers/w1/masters/w1-gpio.c: add strong pullup emulation
        drivers/memstick/host/rtsx_pci_ms.c: fix ms card data transfer bug
        userns: relax the posix_acl_valid() checks
        arch/sh/kernel/dwarf.c: use rbtree postorder iteration helper instead of solution using repeated rb_erase()
        fs-ext3-use-rbtree-postorder-iteration-helper-instead-of-opencoding-fix
        fs/ext3: use rbtree postorder iteration helper instead of opencoding
        fs/jffs2: use rbtree postorder iteration helper instead of opencoding
        fs/ext4: use rbtree postorder iteration helper instead of opencoding
        fs/ubifs: use rbtree postorder iteration helper instead of opencoding
        net/netfilter/ipset/ip_set_hash_netiface.c: use rbtree postorder iteration instead of opencoding
        rbtree/test: test rbtree_postorder_for_each_entry_safe()
        rbtree/test: move rb_node to the middle of the test struct
        rapidio: add modular rapidio core build into powerpc and mips branches
        partitions/efi: complete documentation of gpt kernel param purpose
        kdump: add /sys/kernel/vmcoreinfo ABI documentation
        kdump: fix exported size of vmcoreinfo note
        kexec: add sysctl to disable kexec_load
        fs/exec.c: call arch_pick_mmap_layout() only once
        ...
      3aacd625
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus-3.14-part1' of git://git.linaro.org/people/mike.turquette/linux · 7e21774d
      Linus Torvalds authored
      Pull clk framework changes from Mike Turquette:
       "The first half of the clk framework pull request is made up almost
        entirely of new platform/driver support.  There are some conversions
        of existing drivers to the common-clock Device Tree binding, and a few
        non-critical fixes to the framework.
      
        Due to an entirely unnecessary cyclical dependency with the arm-soc
        tree this pull request is broken into two pieces.  The second piece
        will be sent out after arm-soc sends you the pull request that merged
        in core support for the HiSilicon 3620 platform.  That same pull
        request from arm-soc depends on this pull request to merge in those
        HiSilicon bits without causing build failures"
      
      [ Just did the ARM SoC merges, so getting ready for the second clk tree
        pull request   - Linus ]
      
      * tag 'clk-for-linus-3.14-part1' of git://git.linaro.org/people/mike.turquette/linux: (97 commits)
        devicetree: bindings: Document qcom,mmcc
        devicetree: bindings: Document qcom,gcc
        clk: qcom: Add support for MSM8660's global clock controller (GCC)
        clk: qcom: Add support for MSM8974's multimedia clock controller (MMCC)
        clk: qcom: Add support for MSM8974's global clock controller (GCC)
        clk: qcom: Add support for MSM8960's multimedia clock controller (MMCC)
        clk: qcom: Add support for MSM8960's global clock controller (GCC)
        clk: qcom: Add reset controller support
        clk: qcom: Add support for branches/gate clocks
        clk: qcom: Add support for root clock generators (RCGs)
        clk: qcom: Add support for phase locked loops (PLLs)
        clk: qcom: Add a regmap type clock struct
        clk: Add set_rate_and_parent() op
        reset: Silence warning in reset-controller.h
        clk: sirf: re-arch to make the codes support both prima2 and atlas6
        clk: composite: pass mux_hw into determine_rate
        clk: shmobile: Fix MSTP clock array initialization
        clk: shmobile: Fix MSTP clock index
        ARM: dts: Add clock provider specific properties to max77686 node
        clk: max77686: Register OF clock provider
        ...
      7e21774d
    • Linus Torvalds's avatar
      Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0ba3307a
      Linus Torvalds authored
      Pull ARM driver updates from Olof Johansson:
       "Updates of SoC-near drivers and other driver updates that makes more
        sense to take through our tree.
      
        The largest part of this is a conversion of device registration for
        some renesas shmobile/sh devices over to use resources.  This has
        required coordination with the corresponding arch/sh changes, and
        we've agreed to merge the arch/sh changes through our tree.
      
        Added in this branch is support for Trusted Foundations secure
        firmware, which is what is used on many of the commercial Nvidia Tegra
        products that are in the market, including the Nvidia Shield.  The
        code is local to arch/arm at this time since it's uncertain whether it
        will be shared with arm64 longer-term, if needed we will refactor
        later.
      
        A couple of new RTC drivers used on ARM boards, merged through our
        tree on request by the RTC maintainer.
      
        ... plus a bunch of smaller updates across the board, gpio conversions
        for davinci, etc"
      
      * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (45 commits)
        watchdog: davinci: rename platform driver to davinci-wdt
        tty: serial: Limit msm_serial_hs driver to platforms that use it
        mmc: msm_sdcc: Limit driver to platforms that use it
        usb: phy: msm: Move mach dependent code to platform data
        clk: versatile: fixup IM-PD1 clock implementation
        clk: versatile: pass a name to ICST clock provider
        ARM: integrator: pass parent IRQ to the SIC
        irqchip: versatile FPGA: support cascaded interrupts from DT
        gpio: davinci: don't create irq_domain in case of unbanked irqs
        gpio: davinci: use chained_irq_enter/chained_irq_exit API
        gpio: davinci: add OF support
        gpio: davinci: remove unused variable intc_irq_num
        gpio: davinci: convert to use irqdomain support.
        gpio: introduce GPIO_DAVINCI kconfig option
        gpio: davinci: get rid of DAVINCI_N_GPIO
        gpio: davinci: use {readl|writel}_relaxed() instead of __raw_*
        serial: sh-sci: Add OF support
        serial: sh-sci: Add device tree bindings documentation
        serial: sh-sci: Remove platform data mapbase and irqs fields
        serial: sh-sci: Remove platform data scbrr_algo_id field
        ...
      0ba3307a
    • Linus Torvalds's avatar
      Merge tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 903a9f77
      Linus Torvalds authored
      Pull ARM SoC board updates from Olof Johansson:
       "This branch is reducing in size for every release since most
        board-related changes have started happening in devicetrees now.
        Still, we have some things going on here.
      
         * Renesas platforms are still adding a bit more legacy device
           support, something that should trail off shortly as they move to
           full DT
         * We group most defconfig updates into this branch out of old habits
         * Removal of legacy OMAP2 platforms over to DT continues, and a
           handful of old code is being removed here"
      
      * tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (94 commits)
        ARM: dts: OMAP2: fix interrupt number for rng
        ARM: dts: Split omap3 pinmux core device
        ARM: dts: Add omap specific pinctrl defines to use padconf addresses
        ARM: bcm2835: bcm2835_defconfig updates
        ARM: msm_defconfig: Enable restart driver
        defconfig: msm_defconfig: Enable CONFIG_ARCH_MSM8974
        ARM: msm: Add support for APQ8074 Dragonboard
        ARM: exynos_defconfig: Enable S2MPS11 voltage regulator
        ARM: tegra: Enable DRM panel support
        ARM: shmobile: mackerel: Fix USBHS pinconf entry
        ARM: shmobile: Let Koelsch multiplatform boot with Koelsch DTB
        ARM: shmobile: Let Lager multiplatform boot with Lager DTB
        ARM: shmobile: Remove non-multiplatform Koelsch reference support
        ARM: shmobile: Remove non-multiplatform Lager reference support
        ARM: shmobile: koelsch-reference: Instantiate clkdevs for SCIF and CMT
        ARM: shmobile: lager-reference: Instantiate clkdevs for SCIF and CMT
        ARM: shmobile: koelsch-reference: Remove duplicate CCF initialization
        ARM: shmobile: lager-reference: Enable multiplaform kernel support
        ARM: shmobile: armadillo: Set backlight enable GPIO
        ARM: shmobile: Koelsch: add Ether support
        ...
      
      Conflicts:
      	arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
      903a9f77
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 9b6d351a
      Linus Torvalds authored
      Pull ARM SoC DT updates from Olof Johansson:
       "DT and DT-conversion-related changes for various ARM platforms.  Most
        of these are to enable various devices on various boards, etc, and not
        necessarily worth enumerating.
      
        New boards and systems continue to come in as new devicetree files
        that don't require corresponding C changes any more, which is
        indicating that the system is starting to work fairly well.
      
        A few things worth pointing out:
      
         * ST Ericsson ux500 platforms have made the major push to move over
           to fully support the platform with DT
         * Renesas platforms continue their conversion over from legacy
           platform devices to DT-based for hardware description"
      
      * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (327 commits)
        ARM: dts: SiRF: add pin group for USP0 with only RX or TX frame sync
        ARM: dts: SiRF: add lost usp1_uart_nostreamctrl pin group for atlas6
        ARM: dts: sirf: add lost minigpsrtc device node
        ARM: dts: sirf: add clock, frequence-voltage table for CPU0
        ARM: dts: sirf: add lost bus_width, clock and status for sdhci
        ARM: dts: sirf: add lost clocks for cphifbg
        ARM: dts: socfpga: add pl330 clock
        ARM: dts: socfpga: update L2 tag and data latency
        arm: sun7i: cubietruck: Enable the i2c controllers
        ARM: dts: add support for EXYNOS4412 based TINY4412 board
        ARM: dts: Add initial support for Arndale Octa board
        ARM: bcm2835: add USB controller to device tree
        ARM: dts: MSM8974: Add MMIO architected timer node
        ARM: dts: MSM8974: Add restart node
        ARM: dts: sun7i: external clock outputs
        ARM: dts: sun7i: Change 32768 Hz oscillator node name to clk@N style
        ARM: dts: sun7i: Add pin muxing options for clock outputs
        ARM: dts: sun7i: Add rtp controller node
        ARM: dts: sun5i: Add rtp controller node
        ARM: dts: sun4i: Add rtp controller node
        ...
      9b6d351a
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · dfd10e7a
      Linus Torvalds authored
      Pull ARM SoC platform changes from Olof Johansson:
       "New core SoC-specific changes.
      
        New platforms:
         * Introduction of a vendor, Hisilicon, and one of their SoCs with
           some random numerical product name.
         * Introduction of EFM32, embedded platform from Silicon Labs (ARMv7m,
           i.e. !MMU).
         * Marvell Berlin series of SoCs, which include the one in Chromecast.
         * MOXA platform support, ARM9-based platform used mostly in
           industrial products
         * Support for Freescale's i.MX50 SoC.
      
        Other work:
         * Renesas work for new platforms and drivers, and conversion over to
           more multiplatform-friendly device registration schemes.
         * SMP support for Allwinner sunxi platforms.
         * ... plus a bunch of other stuff across various platforms"
      
      * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (201 commits)
        ARM: tegra: fix tegra_powergate_sequence_power_up() inline
        ARM: msm_defconfig: Update for multi-platform
        ARM: msm: Move MSM's DT based hardware to multi-platform support
        ARM: msm: Only build timer.c if required
        ARM: msm: Only build clock.c on proc_comm based platforms
        ARM: ux500: Enable system suspend with WFI support
        ARM: ux500: turn on PRINTK_TIME in u8500_defconfig
        ARM: shmobile: r8a7790: Fix I2C controller names
        ARM: msm: Simplify ARCH_MSM_DT config
        ARM: msm: Add support for MSM8974 SoC
        ARM: sunxi: select ARM_PSCI
        MAINTAINERS: Update Allwinner sunXi maintainer files
        ARM: sunxi: Select RESET_CONTROLLER
        ARM: imx: improve the comment of CCM lpm SW workaround
        ARM: imx: improve status check of clock gate
        ARM: imx: add necessary interface for pfd
        ARM: imx_v6_v7_defconfig: Select CONFIG_REGULATOR_PFUZE100
        ARM: imx_v6_v7_defconfig: Select MX35 and MX50 device tree support
        ARM: imx: Add cpu frequency scaling support
        ARM i.MX35: Add devicetree support.
        ...
      dfd10e7a
    • Linus Torvalds's avatar
      Merge tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · f2c73464
      Linus Torvalds authored
      Pull ARM SoC cleanups from Olof Johansson:
       "This is the branch where we usually queue up cleanup efforts, moving
        drivers out of the architecture directory, header file restructuring,
        etc.  Sometimes they tangle with new development so it's hard to keep
        it strictly to cleanups.
      
        Some of the things included in this branch are:
      
         * Atmel SAMA5 conversion to common clock
         * Reset framework conversion for tegra platforms
          - Some of this depends on tegra clock driver reworks that are shared
            with Mike Turquette's clk tree.
         * Tegra DMA refactoring, which are shared branches with the DMA tree.
         * Removal of some header files on exynos to prepare for
           multiplatform"
      
      * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
        ARM: mvebu: move Armada 370/XP specific definitions to armada-370-xp.h
        ARM: mvebu: remove prototypes of non-existing functions from common.h
        ARM: mvebu: move ARMADA_XP_MAX_CPUS to armada-370-xp.h
        serial: sh-sci: Rework baud rate calculation
        serial: sh-sci: Compute overrun_bit without using baud rate algo
        serial: sh-sci: Remove unused GPIO request code
        serial: sh-sci: Move overrun_bit and error_mask fields out of pdata
        serial: sh-sci: Support resources passed through platform resources
        serial: sh-sci: Don't check IRQ in verify port operation
        serial: sh-sci: Set the UPF_FIXED_PORT flag
        serial: sh-sci: Remove duplicate interrupt check in verify port op
        serial: sh-sci: Simplify baud rate calculation algorithms
        serial: sh-sci: Remove baud rate calculation algorithm 5
        serial: sh-sci: Sort headers alphabetically
        ARM: EXYNOS: Kill exynos_pm_late_initcall()
        ARM: EXYNOS: Consolidate selection of PM_GENERIC_DOMAINS for Exynos4
        ARM: at91: switch Calao QIL-A9260 board to DT
        clk: at91: fix pmc_clk_ids data type attriubte
        PM / devfreq: use inclusion <mach/map.h> instead of <plat/map-s5p.h>
        ARM: EXYNOS: remove <mach/regs-clock.h> for exynos
        ...
      f2c73464
    • Linus Torvalds's avatar
      Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 93abdb77
      Linus Torvalds authored
      Pull ARM SoC non-critical fixes from Olof Johansson:
       "As usual, we have a batch of fixes that weren't considered significant
        enough to warrant going into the later -rcs for previous release, so
        they are queued up on this branch.
      
        A handful of these are for various DT fixups for Samsung platforms,
        and a handful of other minor things.
      
        There are also a couple of stable-marked patches for mvebu -- they
        came in quite late and we decided to keep them deferred until the
        first -stable release to get more coverage instead of squeezing them
        into 3.13"
      
      * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (32 commits)
        ARM: at91: smc: bug fix in sam9_smc_cs_read()
        i2c: mv64xxx: Document the newly introduced Armada XP A0 compatible
        i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs
        ARM: mvebu: Add quirk for i2c for the OpenBlocks AX3-4 board
        ARM: mvebu: Add support to get the ID and the revision of a SoC
        ARM: dts: msm: Fix gpio interrupt and reg length
        irqchip: sirf: set IRQ_LEVEL status_flags
        ARM: OMAP2+: gpmc: Move legacy GPMC width setting
        ARM: OMAP2+: gpmc: Introduce gpmc_set_legacy()
        ARM: OMAP2+: gpmc: Move initialization outside the gpmc_t condition
        ARM: OMAP2+: board-generic: update SoC compatibility strings
        Documentation: dt: OMAP: explicitly state SoC compatible strings
        ARM: OMAP2+: enable AM33xx SOC EVM audio
        ARM: OMAP2+: Select USB PHY for AM335x SoC
        ARM: bcm2835: Fix grammar in help message
        ARM: msm: trout: fix uninit var warning
        ARM: dts: Use MSHC controller for eMMC memory for exynos4412-trats2
        ARM: dts: Fix definition of MSHC device tree nodes for exynos4x12
        ARM: dts: add clock provider for mshc node for Exynos4412 SOC
        clk: samsung: exynos4: Fix definition of div_mmc_pre4 divider
        ...
      93abdb77
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · f3415351
      Linus Torvalds authored
      Pull ARM updates from Russell King:
       "In this set, we have:
         - Refactoring of some of the old StrongARM-1100 GPIO code to make
           things simpler by Dmitry Eremin-Solenikov
         - Read-only and non-executable support for modules on ARM from Laura
           Abbot
         - Removal of unnecessary set_drvdata() calls in AMBA code
         - Some non-executable support for kernel lowmem mappings at the 1MB
           section granularity, and dumping of kernel page tables via debugfs
         - Some improvements for the timer/clock code on Footbridge platforms,
           and cleanup some of the LED code there
         - Fix fls/ffs() signatures to match x86 to prevent build warnings,
           particularly where these are used with min/max() macros
         - Avoid using the bootmem allocator on ARM (patches from Santosh
           Shilimkar)
         - Various asid/unaligned access updates from Will Deacon"
      
      * 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (51 commits)
        ARM: SMP implementations are not supposed to return from smp_ops.cpu_die()
        ARM: ignore memory below PHYS_OFFSET
        Fix select-induced Kconfig warning for ZBOOT_ROM
        ARM: fix ffs/fls implementations to match x86
        ARM: 7935/1: sa1100: collie: add gpio-keys configuration
        ARM: 7932/1: bcm: Add DEBUG_LL console support
        ARM: 7929/1: Remove duplicate SCHED_HRTICK config option
        ARM: 7928/1: kconfig: select HAVE_EFFICIENT_UNALIGNED_ACCESS for CPUv6+ && MMU
        ARM: 7927/1: dcache: select DCACHE_WORD_ACCESS for big-endian CPUs
        ARM: 7926/1: mm: flesh out and fix the comments in the ASID allocator
        ARM: 7925/1: mm: keep track of last ASID allocation to improve bitmap searching
        ARM: 7924/1: mm: don't bother with reserved ttbr0 when running with LPAE
        ARM: PCI: add legacy IDE IRQ implementation
        ARM: footbridge: cleanup LEDs code
        ARM: pgd allocation: retry on failure
        ARM: footbridge: add one-shot mode for DC21285 timer
        ARM: footbridge: add sched_clock implementation
        ARM: 7922/1: l2x0: add Marvell Tauros3 support
        ARM: 7877/1: use built-in byte swap function
        ARM: 7921/1: mcpm: remove redundant dsb instructions prior to sev
        ...
      f3415351
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 13c789a6
      Linus Torvalds authored
      Pull crypto update from Herbert Xu:
       "Here is the crypto update for 3.14:
      
         - Improved crypto_memneq helper
         - Use cyprto_memneq in arch-specific crypto code
         - Replaced orphaned DCP driver with Freescale MXS DCP driver
         - Added AVX/AVX2 version of AESNI-GCM encode and decode
         - Added AMD Cryptographic Coprocessor (CCP) driver
         - Misc fixes"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (41 commits)
        crypto: aesni - fix build on x86 (32bit)
        crypto: mxs - Fix sparse non static symbol warning
        crypto: ccp - CCP device enabled/disabled changes
        crypto: ccp - Cleanup hash invocation calls
        crypto: ccp - Change data length declarations to u64
        crypto: ccp - Check for caller result area before using it
        crypto: ccp - Cleanup scatterlist usage
        crypto: ccp - Apply appropriate gfp_t type to memory allocations
        crypto: drivers - Sort drivers/crypto/Makefile
        ARM: mxs: dts: Enable DCP for MXS
        crypto: mxs - Add Freescale MXS DCP driver
        crypto: mxs - Remove the old DCP driver
        crypto: ahash - Fully restore ahash request before completing
        crypto: aesni - fix build on x86 (32bit)
        crypto: talitos - Remove redundant dev_set_drvdata
        crypto: ccp - Remove redundant dev_set_drvdata
        crypto: crypto4xx - Remove redundant dev_set_drvdata
        crypto: caam - simplify and harden key parsing
        crypto: omap-sham - Fix Polling mode for larger blocks
        crypto: tcrypt - Added speed tests for AEAD crypto alogrithms in tcrypt test suite
        ...
      13c789a6
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/users/eparis/audit · 6dd9158a
      Linus Torvalds authored
      Pull audit update from Eric Paris:
       "Again we stayed pretty well contained inside the audit system.
        Venturing out was fixing a couple of function prototypes which were
        inconsistent (didn't hurt anything, but we used the same value as an
        int, uint, u32, and I think even a long in a couple of places).
      
        We also made a couple of minor changes to when a couple of LSMs called
        the audit system.  We hoped to add aarch64 audit support this go
        round, but it wasn't ready.
      
        I'm disappearing on vacation on Thursday.  I should have internet
        access, but it'll be spotty.  If anything goes wrong please be sure to
        cc rgb@redhat.com.  He'll make fixing things his top priority"
      
      * git://git.infradead.org/users/eparis/audit: (50 commits)
        audit: whitespace fix in kernel-parameters.txt
        audit: fix location of __net_initdata for audit_net_ops
        audit: remove pr_info for every network namespace
        audit: Modify a set of system calls in audit class definitions
        audit: Convert int limit uses to u32
        audit: Use more current logging style
        audit: Use hex_byte_pack_upper
        audit: correct a type mismatch in audit_syscall_exit()
        audit: reorder AUDIT_TTY_SET arguments
        audit: rework AUDIT_TTY_SET to only grab spin_lock once
        audit: remove needless switch in AUDIT_SET
        audit: use define's for audit version
        audit: documentation of audit= kernel parameter
        audit: wait_for_auditd rework for readability
        audit: update MAINTAINERS
        audit: log task info on feature change
        audit: fix incorrect set of audit_sock
        audit: print error message when fail to create audit socket
        audit: fix dangling keywords in audit_log_set_loginuid() output
        audit: log on errors from filter user rules
        ...
      6dd9158a
    • Jan Beulich's avatar
      lib/decompress_unlz4.c: always set an error return code on failures · 2a1d689c
      Jan Beulich authored
      "ret", being set to -1 early on, gets cleared by the first invocation of
      lz4_decompress()/lz4_decompress_unknownoutputsize(), and hence subsequent
      failures wouldn't be noticed by the caller without setting it back to -1
      right after those calls.
      Reported-by: default avatarMatthew Daley <mattjd@gmail.com>
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Cc: Kyungsik Lee <kyungsik.lee@lge.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2a1d689c
    • Rui Xiang's avatar
      romfs: fix returm err while getting inode in fill_super · 40e2c71d
      Rui Xiang authored
      Getting an inode by romfs_iget may lead to an err in fill_super, and the
      err value should be return.
      
      And it should return -ENOMEM instead while d_make_root fails, fix it too.
      Signed-off-by: default avatarRui Xiang <rui.xiang@huawei.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      40e2c71d
    • Evgeny Boger's avatar
      drivers/w1/masters/w1-gpio.c: add strong pullup emulation · 3089a4c8
      Evgeny Boger authored
      Strong pullup is emulated by driving pin logic high after write command
      when using tri-state push-pull GPIO.
      Signed-off-by: default avatarEvgeny Boger <boger@contactless.ru>
      Cc: Greg KH <greg@kroah.com>
      Acked-by: default avatarDavid Fries <david@fries.net>
      Acked-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3089a4c8
    • Micky Ching's avatar
      drivers/memstick/host/rtsx_pci_ms.c: fix ms card data transfer bug · 63509bea
      Micky Ching authored
      This patch is used to add support for ms card. The main difference
      between ms card and mspro card is long data transfer mode. mspro card
      can use auto mode DMA for long data transfer, but ms can not use this
      mode, it should use normal mode DMA.
      
      The memstick core added support for ms card, but the original driver will
      make ms card fail at initialization, because it uses auto mode DMA.  This
      patch makes the ms card work properly.
      Signed-off-by: default avatarMicky Ching <micky_ching@realsil.com.cn>
      Cc: Maxim Levitsky <maximlevitsky@gmail.com>
      Cc: Samuel Ortiz <sameo@linux.intel.com>
      Cc: Alex Dubov <oakad@yahoo.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      63509bea
    • Andreas Gruenbacher's avatar
      userns: relax the posix_acl_valid() checks · 949b9c3d
      Andreas Gruenbacher authored
      So far, POSIX ACLs are using a canonical representation that keeps all ACL
      entries in a strict order; the ACL_USER and ACL_GROUP entries for specific
      users and groups are ordered by user and group identifier, respectively.
      The user-space code provides ACL entries in this order; the kernel
      verifies that the ACL entry order is correct in posix_acl_valid().
      
      User namespaces allow to arbitrary map user and group identifiers which
      can cause the ACL_USER and ACL_GROUP entry order to differ between user
      space and the kernel; posix_acl_valid() would then fail.
      
      Work around this by allowing ACL_USER and ACL_GROUP entries to be in any
      order in the kernel.  The effect is only minor: file permission checks
      will pick the first matching ACL_USER entry, and check all matching
      ACL_GROUP entries.
      
      (The libacl user-space library and getfacl / setfacl tools will not create
      ACLs with duplicate user or group idenfifiers; they will handle ACLs with
      entries in an arbitrary order correctly.)
      Signed-off-by: default avatarAndreas Gruenbacher <agruen@linbit.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Theodore Tso <tytso@mit.edu>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Andreas Dilger <adilger.kernel@dilger.ca>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      949b9c3d
    • Cody P Schafer's avatar
      arch/sh/kernel/dwarf.c: use rbtree postorder iteration helper instead of... · e376ed7c
      Cody P Schafer authored
      arch/sh/kernel/dwarf.c: use rbtree postorder iteration helper instead of solution using repeated rb_erase()
      
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of using repeated rb_erase() calls
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e376ed7c
    • Andrew Morton's avatar
      fs-ext3-use-rbtree-postorder-iteration-helper-instead-of-opencoding-fix · ed8f6866
      Andrew Morton authored
      use do{}while - more efficient and it squishes a coccinelle warning
      Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
      Cc: Cody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Michel Lespinasse <walken@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ed8f6866
    • Cody P Schafer's avatar
      fs/ext3: use rbtree postorder iteration helper instead of opencoding · b1c8047c
      Cody P Schafer authored
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of opencoding an alternate postorder iteration that modifies the tree
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b1c8047c
    • Cody P Schafer's avatar
      fs/jffs2: use rbtree postorder iteration helper instead of opencoding · e8bbeeb7
      Cody P Schafer authored
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of opencoding an alternate postorder iteration that modifies the tree
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e8bbeeb7
    • Cody P Schafer's avatar
      fs/ext4: use rbtree postorder iteration helper instead of opencoding · d1866bd0
      Cody P Schafer authored
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of opencoding an alternate postorder iteration that modifies the tree
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d1866bd0
    • Cody P Schafer's avatar
      fs/ubifs: use rbtree postorder iteration helper instead of opencoding · bb25e49f
      Cody P Schafer authored
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of opencoding an alternate postorder iteration that modifies the tree
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Artem Bityutskiy <dedekind1@gmail.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bb25e49f
    • Cody P Schafer's avatar
      net/netfilter/ipset/ip_set_hash_netiface.c: use rbtree postorder iteration instead of opencoding · b182837a
      Cody P Schafer authored
      Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
      of opencoding an alternate postorder iteration that modifies the tree
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b182837a
    • Cody P Schafer's avatar
      rbtree/test: test rbtree_postorder_for_each_entry_safe() · 964fe94d
      Cody P Schafer authored
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      964fe94d
    • Cody P Schafer's avatar
      rbtree/test: move rb_node to the middle of the test struct · dbf128cb
      Cody P Schafer authored
      Avoid making the rb_node the first entry to catch some bugs around NULL
      checking the rb_node.
      Signed-off-by: default avatarCody P Schafer <cody@linux.vnet.ibm.com>
      Cc: Michel Lespinasse <walken@google.com>
      Cc: Jan Kara <jack@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dbf128cb
    • Alexandre Bounine's avatar
      rapidio: add modular rapidio core build into powerpc and mips branches · 56abde72
      Alexandre Bounine authored
      Allow modular build option for RapidIO subsystem core in MIPS and PowerPC
      architectural branches.
      
      At this moment modular RapidIO subsystem build is enabled only for
      platforms that use PCI/PCIe based RapidIO controllers (e.g.  Tsi721).
      Signed-off-by: default avatarAlexandre Bounine <alexandre.bounine@idt.com>
      Cc: Matt Porter <mporter@kernel.crashing.org>
      Cc: Jean Delvare <jdelvare@suse.de>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      56abde72
    • Davidlohr Bueso's avatar
      partitions/efi: complete documentation of gpt kernel param purpose · 6c5de79b
      Davidlohr Bueso authored
      The usage of the 'gpt' kernel parameter is twofold: (i) skip any mbr
      integrity checks and (ii) enable the backup GPT header to be used in
      situations where the primary one is corrupted.  This last "feature" is not
      obvious and needs to be properly documented in the kernel-parameters
      document.
      
      Addresses https://bugzilla.kernel.org/show_bug.cgi?id=63591Signed-off-by: default avatarDavidlohr Bueso <davidlohr@hp.com>
      Cc: Matt Domsch <Matt_Domsch@dell.com>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: "Chandramouleeswaran,Aswin" <aswin@hp.com>
      Cc: Chris Murphy <bugzilla@colorremedies.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c5de79b
    • Vivek Goyal's avatar
      kdump: add /sys/kernel/vmcoreinfo ABI documentation · bdd490ad
      Vivek Goyal authored
      /sys/kernel/vmcoreinfo was introduced long back but there is no ABI
      documentation.  This patch adds the documentation.
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
      Cc: Dan Aloni <da-x@monatomic.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bdd490ad
    • Vivek Goyal's avatar
      kdump: fix exported size of vmcoreinfo note · 77019967
      Vivek Goyal authored
      Right now we seem to be exporting the max data size contained inside
      vmcoreinfo note.  But this does not include the size of meta data around
      vmcore info data.  Like name of the note and starting and ending elf_note.
      
      I think user space expects total size and that size is put in PT_NOTE elf
      header.  Things seem to be fine so far because we are not using vmcoreinfo
      note to the maximum capacity.  But as it starts filling up, to capacity,
      at some point of time, problem will be visible.
      
      I don't think user space will be broken with this change.  So there is no
      need to introduce vmcoreinfo2.  This change is safe and backward
      compatible.  More explanation on why this change is safe is below.
      
      vmcoreinfo contains information about kernel which user space needs to
      know to do things like filtering.  For example, various kernel config
      options or information about size or offset of some data structures etc.
      All this information is commmunicated to user space with an ELF note
      present in ELF /proc/vmcore file.
      
      Currently vmcoreinfo data size is 4096.  With some elf note meta data
      around it, actual size is 4132 bytes.  But we are using barely 25% of that
      size.  Rest is empty.  So even if we tell user space that size of ELf note
      is 4096 and not 4132, nothing will be broken becase after around 1000
      bytes, everything is zero anyway.
      
      But once we start filling up the note to the capacity, and not report the
      full size of note, bad things will start happening.  Either some data will
      be lost or tools will be confused that they did not fine the zero note at
      the end.
      
      So I think this change is safe and should not break existing tools.
      Signed-off-by: default avatarVivek Goyal <vgoyal@redhat.com>
      Cc: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
      Cc: Dan Aloni <da-x@monatomic.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      77019967
    • Kees Cook's avatar
      kexec: add sysctl to disable kexec_load · 7984754b
      Kees Cook authored
      For general-purpose (i.e.  distro) kernel builds it makes sense to build
      with CONFIG_KEXEC to allow end users to choose what kind of things they
      want to do with kexec.  However, in the face of trying to lock down a
      system with such a kernel, there needs to be a way to disable kexec_load
      (much like module loading can be disabled).  Without this, it is too easy
      for the root user to modify kernel memory even when CONFIG_STRICT_DEVMEM
      and modules_disabled are set.  With this change, it is still possible to
      load an image for use later, then disable kexec_load so the image (or lack
      of image) can't be altered.
      
      The intention is for using this in environments where "perfect"
      enforcement is hard.  Without a verified boot, along with verified
      modules, and along with verified kexec, this is trying to give a system a
      better chance to defend itself (or at least grow the window of
      discoverability) against attack in the face of a privilege escalation.
      
      In my mind, I consider several boot scenarios:
      
      1) Verified boot of read-only verified root fs loading fd-based
         verification of kexec images.
      2) Secure boot of writable root fs loading signed kexec images.
      3) Regular boot loading kexec (e.g. kcrash) image early and locking it.
      4) Regular boot with no control of kexec image at all.
      
      1 and 2 don't exist yet, but will soon once the verified kexec series has
      landed.  4 is the state of things now.  The gap between 2 and 4 is too
      large, so this change creates scenario 3, a middle-ground above 4 when 2
      and 1 are not possible for a system.
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarRik van Riel <riel@redhat.com>
      Cc: Vivek Goyal <vgoyal@redhat.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7984754b
    • Richard Weinberger's avatar
      fs/exec.c: call arch_pick_mmap_layout() only once · 3b96d7db
      Richard Weinberger authored
      Currently both setup_new_exec() and flush_old_exec() issue a call to
      arch_pick_mmap_layout().  As setup_new_exec() and flush_old_exec() are
      always called pairwise arch_pick_mmap_layout() is called twice.
      
      This patch removes one call from setup_new_exec() to have it only called
      once.
      Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
      Tested-by: default avatarPat Erley <pat-lkml@erley.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3b96d7db
    • Zhang Yi's avatar
      exec: avoid propagating PF_NO_SETAFFINITY into userspace child · b88fae64
      Zhang Yi authored
      Userspace process doesn't want the PF_NO_SETAFFINITY, but its parent may be
      a kernel worker thread which has PF_NO_SETAFFINITY set, and this worker thread
      can do kernel_thread() to create the child.
      Clearing this flag in usersapce child to enable its migrating capability.
      Signed-off-by: default avatarZhang Yi <zhang.yi20@zte.com.cn>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b88fae64
    • Oleg Nesterov's avatar
      kernel/signal.c: change do_signal_stop/do_sigaction to use while_each_thread() · 8d38f203
      Oleg Nesterov authored
      Change do_signal_stop() and do_sigaction() to avoid next_thread() and use
      while_each_thread() instead.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Reviewed-by: default avatarSameer Nanda <snanda@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8d38f203
    • Oleg Nesterov's avatar
      kernel/sys.c: k_getrusage() can use while_each_thread() · 2e1f3835
      Oleg Nesterov authored
      Change k_getrusage() to use while_each_thread(), no changes in the
      compiled code.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Reviewed-by: default avatarSameer Nanda <snanda@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2e1f3835
    • Oleg Nesterov's avatar
      fs/proc/array.c: change do_task_stat() to use while_each_thread() · 185ee40e
      Oleg Nesterov authored
      Change the remaining next_thread (ab)users to use while_each_thread().
      
      The last user which should be changed is next_tid(), but we can't do this
      now.
      
      __exit_signal() and complete_signal() are fine, they actually need
      next_thread() logic.
      
      This patch (of 3):
      
      do_task_stat() can use while_each_thread(), no changes in
      the compiled code.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Reviewed-by: default avatarSameer Nanda <snanda@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      185ee40e
    • Oleg Nesterov's avatar
      exec: kill task_struct->did_exec · 98611e4e
      Oleg Nesterov authored
      We can kill either task->did_exec or PF_FORKNOEXEC, they are mutually
      exclusive.  The patch kills ->did_exec because it has a single user.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      98611e4e
    • Oleg Nesterov's avatar
      exec: move the final allow_write_access/fput into free_bprm() · 63e46b95
      Oleg Nesterov authored
      Both success/failure paths cleanup bprm->file, we can move this
      code into free_bprm() to simlify and cleanup this logic.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Acked-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      63e46b95
    • Oleg Nesterov's avatar
      exec:check_unsafe_exec: kill the dead -EAGAIN and clear_in_exec logic · 9e00cdb0
      Oleg Nesterov authored
      fs_struct->in_exec == T means that this ->fs is used by a single process
      (thread group), and one of the treads does do_execve().
      
      To avoid the mt-exec races this code has the following complications:
      
      	1. check_unsafe_exec() returns -EBUSY if ->in_exec was
      	   already set by another thread.
      
      	2. do_execve_common() records "clear_in_exec" to ensure
      	   that the error path can only clear ->in_exec if it was
      	   set by current.
      
      However, after 9b1bf12d "signals: move cred_guard_mutex from
      task_struct to signal_struct" we do not need these complications:
      
      	1. We can't race with our sub-thread, this is called under
      	   per-process ->cred_guard_mutex. And we can't race with
      	   another CLONE_FS task, we already checked that this fs
      	   is not shared.
      
      	   We can remove the  dead -EAGAIN logic.
      
      	2. "out_unmark:" in do_execve_common() is either called
      	   under ->cred_guard_mutex, or after de_thread() which
      	   kills other threads, so we can't race with sub-thread
      	   which could set ->in_exec. And if ->fs is shared with
      	   another process ->in_exec should be false anyway.
      
      	   We can clear in_exec unconditionally.
      
      This also means that check_unsafe_exec() can be void.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9e00cdb0
    • Oleg Nesterov's avatar
      exec:check_unsafe_exec: use while_each_thread() rather than next_thread() · 83f62a2e
      Oleg Nesterov authored
      next_thread() should be avoided, change check_unsafe_exec() to use
      while_each_thread().
      
      Nobody except signal->curr_target actually needs next_thread-like code,
      and we need to change (fix) this interface.  This particular code is fine,
      p == current.  But in general the code like this can loop forever if p
      exits and next_thread(t) can't reach the unhashed thread.
      
      This also saves 32 bytes.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      83f62a2e