18 Apr, 2015

4 commits

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for Linux 4.1. Most
    noteworthy:

    - Add more Octeon-optimized crypto functions
    - Octeon crypto preemption and locking fixes
    - Little endian support for Octeon
    - Use correct CSR to soft reset Octeons
    - Support LEDs on the Octeon-based DSR-1000N
    - Fix PCI interrupt mapping for the Octeon-based DSR-1000N
    - Mark prom_free_prom_memory() as __init for a number of systems
    - Support for Imagination's Pistachio SOC. This includes arch and
    CLK bits. I'd like to merge pinctrl bits later
    - Improve parallelism of csum_partial for certain pipelines
    - Organize DTB files in subdirs like other architectures
    - Implement read_sched_clock for all MIPS platforms other than
    Octeon
    - Massive series of 38 fixes and cleanups for the FPU emulator /
    kernel
    - Further FPU remulator work to support new features. This sits on a
    separate branch which also has been pulled into the 4.1 KVM branch
    - Clean up and fixes for the SEAD3 eval board; remove unused file
    - Various updates for Netlogic platforms
    - A number of small updates for Loongson 3 platforms
    - Increase the memory limit for ATH79 platforms to 256MB
    - A fair number of fixes and updates for BCM47xx platforms
    - Finish the implementation of XPA support
    - MIPS FDC support. No, not floppy controller but Fast Debug Channel :)
    - Detect the R16000 used in SGI legacy platforms
    - Fix Kconfig dependencies for the SSB bus support"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (265 commits)
    MIPS: Makefile: Fix MIPS ASE detection code
    MIPS: asm: elf: Set O32 default FPU flags
    MIPS: BCM47XX: Fix detecting Microsoft MN-700 & Asus WL500G
    MIPS: Kconfig: Disable SMP/CPS for 64-bit
    MIPS: Hibernate: flush TLB entries earlier
    MIPS: smp-cps: cpu_set FPU mask if FPU present
    MIPS: lose_fpu(): Disable FPU when MSA enabled
    MIPS: ralink: add missing symbol for RALINK_ILL_ACC
    MIPS: ralink: Fix bad config symbol in PCI makefile.
    SSB: fix Kconfig dependencies
    MIPS: Malta: Detect and fix bad memsize values
    Revert "MIPS: Avoid pipeline stalls on some MIPS32R2 cores."
    MIPS: Octeon: Delete override of cpu_has_mips_r2_exec_hazard.
    MIPS: Fix cpu_has_mips_r2_exec_hazard.
    MIPS: kernel: entry.S: Set correct ISA level for mips_ihb
    MIPS: asm: spinlock: Fix addiu instruction for R10000_LLSC_WAR case
    MIPS: r4kcache: Use correct base register for MIPS R6 cache flushes
    MIPS: Kconfig: Fix typo for the r2-to-r6 emulator kernel parameter
    MIPS: unaligned: Fix regular load/store instruction emulation for EVA
    MIPS: unaligned: Surround load/store macros in do {} while statements
    ...

    Linus Torvalds
     
  • Pull Xtensa updates from Chris Zankel:

    - fix linker script transformation for .text / .text.fixup

    - wire bpf and execveat syscalls

    - provide __NR_sync_file_range2 instead of __NR_sync_file_range, as
    that's what xtensa uses.

    - make xtfpgs LCD driver functional and configurable. This fixes
    hardware lockup on KC705/ML605 boot

    - add audio subsystem bits to xtfpga DTS and provide sample KC705
    config with audio features enabled

    - add CY7C67300 USB controller support to XTFPGA

    - fix locking issues in ISS network driver

    - document PIC and MX interrupt distributor device tree bindings

    * tag 'xtensa-20150416' of git://github.com/czankel/xtensa-linux:
    xtensa: xtfpga: add CY7C67300 USB controller support
    irqchip: xtensa-pic: xtensa-mx: document DT bindings
    xtensa: ISS: fix locking in TAP network adapter
    xtensa: Fix fix linker script transformation for .text / .text.fixup
    xtensa: provide __NR_sync_file_range2 instead of __NR_sync_file_range
    xtensa: wire bpf and execveat syscalls
    xtensa: xtfpga: fix hardware lockup caused by LCD driver
    xtensa: xtfpga: provide defconfig with audio subsystem
    xtensa: xtfpga: add audio card to xtfpga DTS

    Linus Torvalds
     
  • Pull block core fix from Jens Axboe:
    "A commit in the previous pull request introduce a regression. So far
    only observed on qemu-sparc64, but it's a general bug. Please pull
    this single fix to rectify that, thanks"

    [ And it turns out that it's been seen outside of that qemu-sparc64
    case, and is easy to trigger with small number of CPUs and blk-mq
    enabled by default - Linus ]

    * 'for-linus' of git://git.kernel.dk/linux-block:
    blk-mq: fix iteration of busy bitmap

    Linus Torvalds
     
  • Pull ACPICA updates from Rafael Wysocki:
    "This updates the kernel's ACPICA code to upstream revision 20150410
    and adds a fix for a GPE handling regression introduced during the
    3.19 cycle on top of that.

    Included are two stable-candidate bug fixes (one of them fixing a 3.16
    regression), multiple other fixes and a bunch of cleanups.

    Specifics:

    - Fix for a GPE handling regression on Dell Latitude D600 that caused
    GPE signaling to stop working on that machine, which appears to be
    due to a hardware glitch, but it used to work and it can be made
    work again in a relativly straightforward way (Rafael J Wysocki).

    - Fix for a mutex unlock regression related to the handling of ACPI
    tables introduced during the 3.16 development cycle (Octavian
    Purdila).

    - _REV modification to always return 2 which has been done by all
    versions of Windows since NT and the firmware people started to use
    it to distinguish between OSes in their AML and do some silly and
    wrong things on that basis (Bob Moore).

    - Fixes and cleanups related to the acpi_physicall_address data type
    including one stable-candidate fix for an issue occasionally
    occuring on 64-bit machines running 32-bit kernels where using
    offsets provided by the firmware may lead to address overflows (Lv
    Zheng).

    - External() opcode support infrastructure needed for recompiling
    disassembled ACPI tables in some cases including interpreter
    modification to ignore that opcode (Bob Moore).

    - Support for the "Windows 2015" string in _OSI (Bob Moore).

    - GPE debug interface change to return values read from hardware
    registers (Lv Zheng).

    - Removal of the __DATE__ macro usage in tools (Rasmus Villemoes).

    - Assorted minor fixes and cleanups (Lv Zheng, Rickard Strandqvist,
    Bob Moore)"

    * tag 'acpica-4.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    ACPICA: Store GPE register enable masks upfront
    ACPICA: Update version to 20150410.
    ACPICA: Fix a couple issues with the local printf module.
    ACPICA: Disassembler: Some cleanup of the table dump module.
    ACPICA: iASL: Add support for MSDM ACPI table.
    ACPICA: Update for SLIC ACPI table.
    ACPICA: Add "//" before ascii output of buffers.
    ACPICA: Remove unused internal AML opcode.
    ACPICA: Permanently set _REV to the value '2'.
    ACPICA: Add "Windows 2015" string to _OSI support.
    ACPICA: Add infrastructure for External() opcode.
    ACPICA: iASL: Enhancement for constant folding.
    ACPICA: iASL/Disassembler: Add option to assume table contains valid AML.
    ACPICA: Update AML Debugger global variables.
    ACPICA: Update Resource descriptor dump module.
    ACPICA: Fix a sscanf format string.
    ACPICA: Casting changes around acpi_physical_address/acpi_size.
    ACPICA: Resources: Correct conditional compilation definitions.
    ACPICA: Utilities: Correct conditional compilation definitions.
    ACPICA: Tables: Move an iasl specific table function to iasl source file.
    ...

    Linus Torvalds
     

17 Apr, 2015

36 commits

  • Commit 889fa31f00b2 was a bit too eager in reducing the loop count,
    so we ended up missing queues in some configurations. Ensure that
    our division rounds up, so that's not the case.

    Reported-by: Guenter Roeck
    Fixes: 889fa31f00b2 ("blk-mq: reduce unnecessary software queue looping")
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Merge third patchbomb from Andrew Morton:

    - various misc things

    - a couple of lib/ optimisations

    - provide DIV_ROUND_CLOSEST_ULL()

    - checkpatch updates

    - rtc tree

    - befs, nilfs2, hfs, hfsplus, fatfs, adfs, affs, bfs

    - ptrace fixes

    - fork() fixes

    - seccomp cleanups

    - more mmap_sem hold time reductions from Davidlohr

    * emailed patches from Andrew Morton : (138 commits)
    proc: show locks in /proc/pid/fdinfo/X
    docs: add missing and new /proc/PID/status file entries, fix typos
    drivers/rtc/rtc-at91rm9200.c: make IO endian agnostic
    Documentation/spi/spidev_test.c: fix warning
    drivers/rtc/rtc-s5m.c: allow usage on device type different than main MFD type
    .gitignore: ignore *.tar
    MAINTAINERS: add Mediatek SoC mailing list
    tomoyo: reduce mmap_sem hold for mm->exe_file
    powerpc/oprofile: reduce mmap_sem hold for exe_file
    oprofile: reduce mmap_sem hold for mm->exe_file
    mips: ip32: add platform data hooks to use DS1685 driver
    lib/Kconfig: fix up HAVE_ARCH_BITREVERSE help text
    x86: switch to using asm-generic for seccomp.h
    sparc: switch to using asm-generic for seccomp.h
    powerpc: switch to using asm-generic for seccomp.h
    parisc: switch to using asm-generic for seccomp.h
    mips: switch to using asm-generic for seccomp.h
    microblaze: use asm-generic for seccomp.h
    arm: use asm-generic for seccomp.h
    seccomp: allow COMPAT sigreturn overrides
    ...

    Linus Torvalds
     
  • Let's show locks which are associated with a file descriptor in
    its fdinfo file.

    Currently we don't have a reliable way to determine who holds a lock. We
    can find some information in /proc/locks, but PID which is reported there
    can be wrong. For example, a process takes a lock, then forks a child and
    dies. In this case /proc/locks contains the parent pid, which can be
    reused by another process.

    $ cat /proc/locks
    ...
    6: FLOCK ADVISORY WRITE 324 00:13:13431 0 EOF
    ...

    $ ps -C rpcbind
    PID TTY TIME CMD
    332 ? 00:00:00 rpcbind

    $ cat /proc/332/fdinfo/4
    pos: 0
    flags: 0100000
    mnt_id: 22
    lock: 1: FLOCK ADVISORY WRITE 324 00:13:13431 0 EOF

    $ ls -l /proc/332/fd/4
    lr-x------ 1 root root 64 Mar 5 14:43 /proc/332/fd/4 -> /run/rpcbind.lock

    $ ls -l /proc/324/fd/
    total 0
    lrwx------ 1 root root 64 Feb 27 14:50 0 -> /dev/pts/0
    lrwx------ 1 root root 64 Feb 27 14:50 1 -> /dev/pts/0
    lrwx------ 1 root root 64 Feb 27 14:49 2 -> /dev/pts/0

    You can see that the process with the 324 pid doesn't hold the lock.

    This information is required for proper dumping and restoring file
    locks.

    Signed-off-by: Andrey Vagin
    Cc: Jonathan Corbet
    Cc: Alexander Viro
    Acked-by: Jeff Layton
    Acked-by: "J. Bruce Fields"
    Acked-by: Cyrill Gorcunov
    Cc: Pavel Emelyanov
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Vagin
     
  • docs: add missing and new /proc/PID/status file entries, fix typos

    Signed-off-by: Nathan Scott
    Signed-off-by: Chen Hanxiao
    Cc: Serge Hallyn
    Cc: "Eric W. Biederman"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nathan Scott
     
  • Change the __raw IO calls to readl/write_relaxed which makes the driver
    endian agnostic to run properly on big endian systems.

    Signed-off-by: Ben Dooks
    Cc: Alessandro Zummo
    Cc: Andrew Victor
    Acked-by: Nicolas Ferre
    Acked-by: Jean-Christophe PLAGNIOL-VILLARD
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Documentation/spi/spidev_test.c:83:5: warning: no previous prototype for 'unespcape' [-Wmissing-prototypes]

    fix spelling too.

    Acked-by: Mark Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • The RTC driver supports two flavors of S5M devices: S5M8767-like and
    S2MPS14-like.

    On S2MPS13 and S2MPS14 devices the RTC module is the same so we want to
    re-use the existing support of S2MPS14. However device type was passed
    from parent MFD driver in platform data structure. This way for the
    S2MPS13 device the main MFD driver passed device type of 'S2MPS13X'.

    Instead decouple detecting of device type between main MFD and RTC driver.
    This allows adding support for other S2MPS14 variations (like S2MPS11 and
    S2MPS13) easily by adding to mfd/sec-core.c:

    static const struct mfd_cell s2mps13_devs[] = {
    { .name = "s2mps14-rtc", }
    };

    Signed-off-by: Krzysztof Kozlowski
    Cc: Alessandro Zummo
    Cc: Kyungmin Park
    Cc: Marek Szyprowski
    Cc: Chanwoo Choi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     
  • Running make tar-pkg results in following:

    # Untracked files:
    # (use "git add ..." to include in what will be committed)
    #
    # linux-4.0.0-rc3-next-20150313-150225--x86.tar

    This patch makes git ignore *.tar files.
    Running 'git ls-files -i --exclude-standard' does not show any
    tar files excluded from tracking after the change.

    Signed-off-by: Andrey Skvortsov
    Cc: Michal Marek
    Cc: Greg Kroah-Hartman
    Cc: Boaz Harrosh
    Cc: Andi Kleen
    Cc: Benjamin Romer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Skvortsov
     
  • Add the new list that Mediatek specific patches should also be
    directed to.

    Signed-off-by: Matthias Brugger
    Cc: Olof Johansson
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthias Brugger
     
  • The mm->exe_file is currently serialized with mmap_sem (shared) in order
    to both safely (1) read the file and (2) compute the realpath by calling
    tomoyo_realpath_from_path, making it an absolute overkill. Good users
    will, on the other hand, make use of the more standard get_mm_exe_file(),
    requiring only holding the mmap_sem to read the value, and relying on
    reference

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Davidlohr Bueso
    Acked-by: Tetsuo Handa
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davidlohr Bueso
     
  • In the future mm->exe_file will be done without mmap_sem serialization,
    thus isolate and reorganize the related code to make the transition
    easier. Good users will, make use of the more standard get_mm_exe_file(),
    requiring only holding the mmap_sem to read the value, and relying on
    reference counting to make sure that the exe file won't dissappear
    underneath us while getting the dcookie.

    Signed-off-by: Davidlohr Bueso
    Cc: Arnd Bergmann
    Cc: Robert Richter
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davidlohr Bueso
     
  • sync_buffer() needs the mmap_sem for two distinct operations, both only
    occurring upon user context switch handling:

    1) Dealing with the exe_file.

    2) Adding the dcookie data as we need to lookup the vma that
    backs it. This is done via add_sample() and add_data().

    This patch isolates 1), for it will no longer need the mmap_sem for
    serialization. However, for now, make of the more standard
    get_mm_exe_file(), requiring only holding the mmap_sem to read the value,
    and relying on reference counting to make sure that the exe file won't
    dissappear underneath us while doing the get dcookie.

    As a consequence, for 2) we move the mmap_sem locking into where we really
    need it, in lookup_dcookie(). The benefits are twofold: reduce mmap_sem
    hold times, and cleaner code.

    [akpm@linux-foundation.org: export get_mm_exe_file for arch/x86/oprofile/oprofile.ko]
    Signed-off-by: Davidlohr Bueso
    Cc: Robert Richter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davidlohr Bueso
     
  • This modifies the IP32 (SGI O2) platform and reset code to utilize the new
    rtc-ds1685 driver. The old mc146818rtc.h header is removed and ip32_defconfig
    is updated as well.

    Signed-off-by: Joshua Kinard
    Acked-by: Ralf Baechle
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joshua Kinard
     
  • Cc: Yalin Wang
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. The obsolete sigreturn syscall override
    is retained in 32-bit mode, and the ia32 syscall overrides are used in
    the compat case. Remaining definitions were identical.

    Signed-off-by: Kees Cook
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. The obsolete sigreturn in COMPAT mode
    is retained as an override. Remaining definitions are identical. Also
    corrected missing #define for header reinclusion protection.

    Signed-off-by: Kees Cook
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. The obsolete sigreturn in COMPAT mode is
    retained as an override. Remaining definitions are identical, though they
    incorrectly appeared in uapi, which has been corrected.

    Signed-off-by: Kees Cook
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. Definitions were identical.

    Signed-off-by: Kees Cook
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. COMPAT definitions retain their
    overrides and the remaining definitions were identical.

    Signed-off-by: Kees Cook
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. Since microblaze is 32-bit, the COMPAT
    seccomp defines are unused and can be dropped. The obsolete sigreturn
    for seccomp strict mode is retained as an override. Remaining definitions
    are identical.

    Signed-off-by: Kees Cook
    Cc: Michal Simek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Switch to using the newly created asm-generic/seccomp.h for the seccomp
    strict mode syscall definitions. Definitions were identical.

    Signed-off-by: Kees Cook
    Cc: Russell King
    Cc: Laura Abbott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Most architectures don't need to do much special for the strict-mode
    seccomp syscall entries. Remove the redundant headers and reduce the
    others.

    This patch (of 8):

    Some architectures may need to override the compat sigreturn definition,
    as is already possible in the non-compat case.

    Signed-off-by: Kees Cook
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Russell King
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: "David S. Miller"
    Cc: Arnd Bergmann
    Cc: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Will Deacon
    Cc: Daniel Borkmann
    Cc: Laura Abbott
    Cc: James Hogan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • print_task_path_n_nm() is local to this file, its only user being
    show_regs(). Mark the function static and avoid the EXPORT_SYMBOL.

    Signed-off-by: Davidlohr Bueso
    Acked-by: Vineet Gupta
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Davidlohr Bueso
     
  • It is better to use macros which are already available because then there
    is just one location which needs to be change.

    [akpm@linux-foundation.org: move IS_ENABLED definition to after the IS_BUILTIN and IS_MODULE definitions]
    Signed-off-by: Michal Simek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Using the indenting we can see the curly braces were obviously intended.
    This is a static checker fix, but my guess is that we don't read enough
    bytes, because we don't calculate "t_len" correctly.

    Fixes: f1d82698029b ('memstick: use fully asynchronous request processing')
    Signed-off-by: Dan Carpenter
    Cc: Alex Dubov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • In case of failed memory allocation, the return should be ENOMEM instead
    of ENOSPC.

    Return -EIO when sb_bread() fails.

    Signed-off-by: Sanidhya Kashyap
    Cc: Tigran Aivazian
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sanidhya Kashyap
     
  • This kthread is not loop at all due to break at the end of the loop. Make
    that function linear, with no while loop.

    And remove an unnecessary cast.

    Signed-off-by: Jiri Slaby
    Cc: Anil Gurumurthy
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • There is a possibility of kstrdup() failure upon memory pressure.
    Therefore, returning ENOMEM even for new_opts.

    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Sanidhya Kashyap
    Cc: Taesoo kim
    Cc: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sanidhya Kashyap
     
  • Replace mount option test by affs_test_opt().

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Replace direct mount option assignation by affs_set_opt() macro.

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Add clear/set/test affs mount option macros.

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Currently, affs still uses direct access on mount_options. This patch
    prepares to use affs_clear/set/test_opt() like other filesystems.

    Signed-off-by: Fabian Frederick
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabian Frederick
     
  • Fix the wrong values returned by various functions such as EIO and ENOMEM.

    Signed-off-by: Sanidhya Kashyap
    Cc: Fabian Frederick
    Cc: Joe Perches
    Cc: Taesoo kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sanidhya Kashyap
     
  • gcov profiling if enabled with other heavy compile-time instrumentation
    like KASan could trigger following softlockups:

    NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:1]
    Modules linked in:
    irq event stamp: 22823276
    hardirqs last enabled at (22823275): [] mutex_lock_nested+0x7d9/0x930
    hardirqs last disabled at (22823276): [] apic_timer_interrupt+0x6d/0x80
    softirqs last enabled at (22823172): [] __do_softirq+0x4db/0x729
    softirqs last disabled at (22823167): [] irq_exit+0x7d/0x15b
    CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 3.19.0-05245-gbb33326-dirty #3
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
    task: ffff88006cba8000 ti: ffff88006cbb0000 task.ti: ffff88006cbb0000
    RIP: kasan_mem_to_shadow+0x1e/0x1f
    Call Trace:
    strcmp+0x28/0x70
    get_node_by_name+0x66/0x99
    gcov_event+0x4f/0x69e
    gcov_enable_events+0x54/0x7b
    gcov_fs_init+0xf8/0x134
    do_one_initcall+0x1b2/0x288
    kernel_init_freeable+0x467/0x580
    kernel_init+0x15/0x18b
    ret_from_fork+0x7c/0xb0
    Kernel panic - not syncing: softlockup: hung tasks

    Fix this by sticking cond_resched() in gcov_enable_events().

    Signed-off-by: Andrey Ryabinin
    Reported-by: Fengguang Wu
    Cc: Peter Oberparleiter
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • When converting unsigned long to int overflows may occur. These currently
    are not detected when writing to the sysctl file system.

    E.g. on a system where int has 32 bits and long has 64 bits
    echo 0x800001234 > /proc/sys/kernel/threads-max
    has the same effect as
    echo 0x1234 > /proc/sys/kernel/threads-max

    The patch adds the missing check in do_proc_dointvec_conv.

    With the patch an overflow will result in an error EINVAL when writing to
    the the sysctl file system.

    Signed-off-by: Heinrich Schuchardt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Heinrich Schuchardt
     
  • cpumask_next_and() is looking for cpumask_next() in src1 in a loop and
    tests if found cpu is also present in src2. remove that loop, perform
    cpumask_and() of src1 and src2 first and use that new mask to find
    cpumask_next().

    Apart from removing while loop, ./bloat-o-meter on x86_64 shows
    add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-8 (-8)
    function old new delta
    cpumask_next_and 62 54 -8

    Signed-off-by: Sergey Senozhatsky
    Cc: Tejun Heo
    Cc: "David S. Miller"
    Cc: Amir Vadai
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergey Senozhatsky