02 Mar, 2017

25 commits

  • We are going to split out of , which
    will have to be picked up from other headers and .c files.

    Create a trivial placeholder file that just
    maps to to make this patch obviously correct and
    bisectable.

    Include the new header in the files that are going to need it.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • We are going to split out of , which
    will have to be picked up from other headers and a couple of .c files.

    Create a trivial placeholder file that just
    maps to to make this patch obviously correct and
    bisectable.

    Include the new header in the files that are going to need it.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • We are going to split out of , which
    will have to be picked up from other headers and a couple of .c files.

    Create a trivial placeholder file that just
    maps to to make this patch obviously correct and
    bisectable.

    Include the new header in the files that are going to need it.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • We are going to split out of , which
    will have to be picked up from other headers and a couple of .c files.

    Create a trivial placeholder file that just
    maps to to make this patch obviously correct and
    bisectable.

    Include the new header in the files that are going to need it.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • is a low level header that is included early
    in affected kernel headers. But it includes
    which complicates the cleanup of sched.h dependencies.

    But kasan.h has almost no need for sched.h: its only use of
    scheduler functionality is in two inline functions which are
    not used very frequently - so uninline kasan_enable_current()
    and kasan_disable_current().

    Also add a dependency to a .c file that depended
    on kasan.h including it.

    This paves the way to remove the include from kasan.h.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • …sched.h> to <linux/mm_types>

    The <linux/sched.h> header includes various vmacache related defines,
    which are arguably misplaced.

    Move them to mm_types.h and minimize the sched.h impact by putting
    all task vmacache state into a new 'struct vmacache' structure.

    No change in functionality.

    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • threadgroup_change_begin()/end() is a pointless wrapper around
    cgroup_threadgroup_change_begin()/end(), minus a might_sleep()
    in the !CONFIG_CGROUPS=y case.

    Remove the wrappery, move the might_sleep() (the down_read()
    already has a might_sleep() check).

    This debloats a bit and simplifies this API.

    Update all call sites.

    No change in functionality.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • So rcupdate.h is a pretty complex header, in particular it includes
    which includes - creating a
    dependency that includes in ,
    which prevents the isolation of from the derived
    header.

    Solve part of the problem by decoupling rcupdate.h from completions:
    this can be done by separating out the rcu_synchronize types and APIs,
    and updating their usage sites.

    Since this is a mostly RCU-internal types this will not just simplify
    's dependencies, but will make all the hundreds of
    .c files that include rcupdate.h but not completions or wait.h build
    faster.

    ( For rcutiny this means that two dependent APIs have to be uninlined,
    but that shouldn't be much of a problem as they are rare variants. )

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • tsk_nr_cpus_allowed() too is a pretty pointless wrapper that
    is not used consistently and which makes the code both harder
    to read and longer as well.

    So remove it - this also shrinks a bit.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • So the original intention of tsk_cpus_allowed() was to 'future-proof'
    the field - but it's pretty ineffectual at that, because half of
    the code uses ->cpus_allowed directly ...

    Also, the wrapper makes the code longer than the original expression!

    So just get rid of it. This also shrinks a bit.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • It's defined in , but nothing outside the scheduler
    uses it - so move it to the sched/core.c usage site.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • The length of TASK_STATE_TO_CHAR_STR was still checked using the old
    link-time manual error method - convert it to BUILD_BUG_ON(). This
    has a couple of advantages:

    - it's more obvious what's going on

    - it reduces the size and complexity of

    - BUILD_BUG_ON() will fail during compilation, with a clearer
    error message than the link time assert.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Make each header self-sufficient, so that it can be built successfully
    both in an allnoconfig and allyesconfig kernel.

    Also standardize the naming of their header guards.

    Acked-by: Linus Torvalds
    Cc: Mike Galbraith
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • Pull objtool relocation fixes from Ingo Molnar:
    "Two fixes related to the module loading regression introduced by the
    recent objtool changes"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    objtool, modules: Discard objtool annotation sections for modules
    objtool, compiler.h: Fix __unreachable section relocation size

    Linus Torvalds
     
  • Pull NFS client updates from Anna Schumaker:
    "Highlights include:

    Stable bugfixes:
    - NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
    - xprtrdma: Fix Read chunk padding
    - xprtrdma: Per-connection pad optimization
    - xprtrdma: Disable pad optimization by default
    - xprtrdma: Reduce required number of send SGEs
    - nlm: Ensure callback code also checks that the files match
    - pNFS/flexfiles: If the layout is invalid, it must be updated before
    retrying
    - NFSv4: Fix reboot recovery in copy offload
    - Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION
    replies to OP_SEQUENCE"
    - NFSv4: fix getacl head length estimation
    - NFSv4: fix getacl ERANGE for sum ACL buffer sizes

    Features:
    - Add and use dprintk_cont macros
    - Various cleanups to NFS v4.x to reduce code duplication and
    complexity
    - Remove unused cr_magic related code
    - Improvements to sunrpc "read from buffer" code
    - Clean up sunrpc timeout code and allow changing TCP timeout
    parameters
    - Remove duplicate mw_list management code in xprtrdma
    - Add generic functions for encoding and decoding xdr streams

    Bugfixes:
    - Clean up nfs_show_mountd_netid
    - Make layoutreturn_ops static and use NULL instead of 0 to fix
    sparse warnings
    - Properly handle -ERESTARTSYS in nfs_rename()
    - Check if register_shrinker() failed during rpcauth_init()
    - Properly clean up procfs/pipefs entries
    - Various NFS over RDMA related fixes
    - Silence unititialized variable warning in sunrpc"

    * tag 'nfs-for-4.11-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (64 commits)
    NFSv4: fix getacl ERANGE for some ACL buffer sizes
    NFSv4: fix getacl head length estimation
    Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE"
    NFSv4: Fix reboot recovery in copy offload
    pNFS/flexfiles: If the layout is invalid, it must be updated before retrying
    NFSv4: Clean up owner/group attribute decode
    SUNRPC: Add a helper function xdr_stream_decode_string_dup()
    NFSv4: Remove bogus "struct nfs_client" argument from decode_ace()
    NFSv4: Fix the underestimation of delegation XDR space reservation
    NFSv4: Replace callback string decode function with a generic
    NFSv4: Replace the open coded decode_opaque_inline() with the new generic
    NFSv4: Replace ad-hoc xdr encode/decode helpers with xdr_stream_* generics
    SUNRPC: Add generic helpers for xdr_stream encode/decode
    sunrpc: silence uninitialized variable warning
    nlm: Ensure callback code also checks that the files match
    sunrpc: Allow xprt->ops->timer method to sleep
    xprtrdma: Refactor management of mw_list field
    xprtrdma: Handle stale connection rejection
    xprtrdma: Properly recover FRWRs with in-flight FASTREG WRs
    xprtrdma: Shrink send SGEs array
    ...

    Linus Torvalds
     
  • Pull f2fs updates from Jaegeuk Kim:
    "This round introduces several interesting features such as on-disk NAT
    bitmaps, IO alignment, and a discard thread. And it includes a couple
    of major bug fixes as below.

    Enhancements:

    - introduce on-disk bitmaps to avoid scanning NAT blocks when getting
    free nids

    - support IO alignment to prepare open-channel SSD integration in
    future

    - introduce a discard thread to avoid long latency during checkpoint
    and fstrim

    - use SSR for warm node and enable inline_xattr by default

    - introduce in-memory bitmaps to check FS consistency for debugging

    - improve write_begin by avoiding needless read IO

    Bug fixes:

    - fix broken zone_reset behavior for SMR drive

    - fix wrong victim selection policy during GC

    - fix missing behavior when preparing discard commands

    - fix bugs in atomic write support and fiemap

    - workaround to handle multiple f2fs_add_link calls having same name

    ... and it includes a bunch of clean-up patches as well"

    * tag 'for-f2fs-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (97 commits)
    f2fs: avoid to flush nat journal entries
    f2fs: avoid to issue redundant discard commands
    f2fs: fix a plint compile warning
    f2fs: add f2fs_drop_inode tracepoint
    f2fs: Fix zoned block device support
    f2fs: remove redundant set_page_dirty()
    f2fs: fix to enlarge size of write_io_dummy mempool
    f2fs: fix memory leak of write_io_dummy mempool during umount
    f2fs: fix to update F2FS_{CP_}WB_DATA count correctly
    f2fs: use MAX_FREE_NIDS for the free nids target
    f2fs: introduce free nid bitmap
    f2fs: new helper cur_cp_crc() getting crc in f2fs_checkpoint
    f2fs: update the comment of default nr_pages to skipping
    f2fs: drop the duplicate pval in f2fs_getxattr
    f2fs: Don't update the xattr data that same as the exist
    f2fs: kill __is_extent_same
    f2fs: avoid bggc->fggc when enough free segments are avaliable after cp
    f2fs: select target segment with closer temperature in SSR mode
    f2fs: show simple call stack in fault injection message
    f2fs: no need lock_op in f2fs_write_inline_data
    ...

    Linus Torvalds
     
  • The '__unreachable' and '__func_stack_frame_non_standard' sections are
    only used at compile time. They're discarded for vmlinux but they
    should also be discarded for modules.

    Since this is a recurring pattern, prefix the section names with
    ".discard.". It's a nice convention and vmlinux.lds.h already discards
    such sections.

    Also remove the 'a' (allocatable) flag from the __unreachable section
    since it doesn't make sense for a discarded section.

    Suggested-by: Linus Torvalds
    Signed-off-by: Josh Poimboeuf
    Cc: Jessica Yu
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
    Link: http://lkml.kernel.org/r/20170301180444.lhd53c5tibc4ns77@treble
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     
  • Pull arm64 fixes from Will Deacon:
    "The main fix here addresses a kernel panic triggered on Qualcomm
    QDF2400 due to incorrect register usage in an erratum workaround
    introduced during the merge window.

    Summary:

    - Fix kernel panic on specific Qualcomm platform due to broken
    erratum workaround

    - Revert contiguous bit support due to TLB conflict aborts in
    simulation

    - Don't treat all CPU ID register fields as 4-bit quantities"

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
    arm64/cpufeature: check correct field width when updating sys_val
    Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate"
    arm64: Avoid clobbering mm in erratum workaround on QDF2400

    Linus Torvalds
     
  • Pull more powerpc updates from Michael Ellerman:
    "Highlights include:

    - an update of the disassembly code used by xmon to the latest
    versions in binutils. We've received permission from all the
    authors of the relevant binutils changes to relicense their changes
    to the relevant files from GPLv3 to GPLv2, for inclusion in Linux.
    Thanks to Peter Bergner for doing the leg work to get permission
    from everyone.

    - addition of the "architected" Power9 CPU table entry, allowing us
    to boot in Power9 architected mode under a hypervisor.

    - updates to the Power9 PMU code.

    - implementation of clear_bit_unlock_is_negative_byte() to optimise
    unlock_page().

    - Freescale updates from Scott: "Highlights include 8xx breakpoints
    and perf, t1042rdb display support, and board updates."

    Thanks to:
    Al Viro, Andrew Donnellan, Aneesh Kumar K.V, Balbir Singh, Douglas
    Miller, Frédéric Weisbecker, Gavin Shan, Madhavan Srinivasan,
    Michael Roth, Nathan Fontenot, Naveen N. Rao, Nicholas Piggin, Peter
    Bergner, Paul E. McKenney, Rashmica Gupta, Russell Currey, Sahil
    Mehta, Stewart Smith"

    * tag 'powerpc-4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (48 commits)
    powerpc: Remove leftover cputime_to_nsecs call causing build error
    powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU
    powerpc/optprobes: Fix TOC handling in optprobes trampoline
    powerpc/pseries: Advertise Hot Plug Event support to firmware
    cxl: fix nested locking hang during EEH hotplug
    powerpc/xmon: Dump memory in CPU endian format
    powerpc/pseries: Revert 'Auto-online hotplugged memory'
    powerpc/powernv: Make PCI non-optional
    powerpc/64: Implement clear_bit_unlock_is_negative_byte()
    powerpc/powernv: Remove unused variable in pnv_pci_sriov_disable()
    powerpc/kernel: Remove error message in pcibios_setup_phb_resources()
    powerpc/mm: Fix typo in set_pte_at()
    pci/hotplug/pnv-php: Disable MSI and PCI device properly
    pci/hotplug/pnv-php: Disable surprise hotplug capability on conflicts
    pci/hotplug/pnv-php: Remove WARN_ON() in pnv_php_put_slot()
    powerpc: Add POWER9 architected mode to cputable
    powerpc/perf: use is_kernel_addr macro in perf_get_misc_flags()
    powerpc/perf: Avoid FAB_*_MATCH checks for power9
    powerpc/perf: Add restrictions to PMC5 in power9 DD1
    powerpc/perf: Use Instruction Counter value
    ...

    Linus Torvalds
     
  • INPUT_PROP_BUTTONPAD is currently only set through the platform data.
    The RMI4 header doc says that this property is there to force the
    buttonpad property, so we also need to detect it by looking at
    the exported buttons count.

    Signed-off-by: Benjamin Tissoires
    Reported-and-tested-by: Linus Torvalds
    Signed-off-by: Linus Torvalds

    Benjamin Tissoires
     
  • Pull sound fixes from Takashi Iwai:
    "A few last-minute fixes for rc1:

    - ALSA core timer and sequencer fixes for bugs spotted by syzkaller

    - a couple of trivial HD-audio fixups

    - additional PCI / codec IDs for Intel Geminilake

    - fixes for CT-XFi DMA mask bugs"

    * tag 'sound-fix-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: seq: Fix link corruption by event error handling
    ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming
    ALSA: ctxfi: Fallback DMA mask to 32bit
    ALSA: timer: Reject user params with too small ticks
    ALSA: hda: Add Geminilake HDMI codec ID
    ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine
    ALSA: hda - Add Geminilake PCI ID

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:

    - add thermal driver for R-Car Gen3 thermal sensors.

    - add thermal driver for ZTE' zx2967 family thermal sensors.

    - convert thermal ID allocation from IDR to IDA.

    - fix a possible NULL dereference in imx thermal driver.

    - fix a ti-soc-thermal driver dependency issue so that critical thermal
    control is still available when CPU_THERMAL is not defined.

    - update binding information for QorIQ thermal driver.

    - a couple of cleanups in thermal core, intel_powerclamp, exynos,
    dra752-thermal, mtk-thermal driver.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    powerpc/mpc85xx: Update TMU device tree node for T1023/T1024
    powerpc/mpc85xx: Update TMU device tree node for T1040/T1042
    dt-bindings: Update QorIQ TMU thermal bindings
    thermal: mtk_thermal: Staticise a number of data variables
    thermal: arm: dra752: Remove all TSHUT related definitions
    thermal: arm: dra752: Remove TSHUT configuration
    thermal: ti-soc-thermal: Remove CPU_THERMAL Dependency from TI_THERMAL
    thermal: imx: Fix possible NULL dereference.
    thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property
    thermal: zx2967: add thermal driver for ZTE's zx2967 family
    thermal: use cpumask_var_t for on-stack cpu masks
    dt: bindings: add documentation for zx2967 family thermal sensor
    thermal/intel_powerclamp: Remove set-but-not-used variables
    thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver
    thermal: rcar_gen3_thermal: Document the R-Car Gen3
    thermal: convert devfreq_cooling to use an IDA
    thermal: convert cpu_cooling to use an IDA
    thermal: convert clock cooling to use an IDA
    thermal core: convert ID allocation to IDA

    Linus Torvalds
     
  • …ierry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "This set contains mostly fixes to existing drivers as well as cleanup
    of code that's not been in active use for a while"

    * tag 'pwm/for-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (27 commits)
    acpi: lpss: call pwm_add_table() for BSW PWM device
    pwm: Try to load modules during pwm_get()
    pwm: Don't hold pwm_lookup_lock longer than necessary
    pwm: Make the PWM_POLARITY flag in DTB optional
    pwm: Print error messages with pr_err() instead of pr_debug()
    pwm: imx: Add polarity inversion support to i.MX's PWMv2
    pwm: imx: doc: Update imx-pwm.txt documentation entry
    pwm: imx: Remove redundant i.MX PWMv2 code
    pwm: imx: Provide atomic PWM support for i.MX PWMv2
    pwm: imx: Move PWMv2 wait for fifo slot code to a separate function
    pwm: imx: Move PWMv2 software reset code to a separate function
    pwm: imx: Rewrite v1 code to facilitate switch to atomic PWM
    pwm: imx: Add separate set of PWM ops for v1 and v2
    pwm: imx: Remove ipg clock and enable per clock when required
    pwm: lpss: Add Intel Gemini Lake PCI ID
    pwm: lpss: Do not export board infos for different PWM types
    pwm: lpss: Avoid reconfiguring while UPDATE bit is still enabled
    pwm: lpss: Switch to new atomic API
    pwm: lpss: Allow duty cycle to be 0
    pwm: lpss: Avoid potential overflow of base_unit
    ...

    Linus Torvalds
     
  • Pull drm AST2500 support from Dave Airlie:
    "This is a set of changes to enable the AST2500 BMC hardware, and also
    fix some bugs interacting with the older AST hardware.

    Some of the bug fixes are cc'ed to stable"

    * tag 'drm-ast-2500-for-v4.11' of git://people.freedesktop.org/~airlied/linux:
    drm/ast: Call open_key before enable_mmio in POST code
    drm/ast: Fix test for VGA enabled
    drm/ast: POST code for the new AST2500
    drm/ast: Rename ast_init_dram_2300 to ast_post_chip_2300
    drm/ast: Factor mmc_test code in POST code
    drm/ast: Fixed vram size incorrect issue on POWER
    drm/ast: Base support for AST2500
    drm/ast: Fix calculation of MCLK
    drm/ast: Remove spurious include
    drm/ast: const'ify mode setting tables
    drm/ast: Handle configuration without P2A bridge
    drm/ast: Fix AST2400 POST failure without BMC FW or VBIOS

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Misc fixes for v4.11-rc1.

    This is a selection of fixes for recent bugs, the vmwgfx one is
    important to avoid a regression, and compat ioctl one is pretty urgent
    for stable. Otherwise nothing too much.

    I've got a separate pull req for some AST hw IBM need to enable"

    * tag 'drm-fixes-for-v4.11-rc1' of git://people.freedesktop.org/~airlied/linux:
    dma-buf: add support for compat ioctl
    drm/vmwgfx: Work around drm removal of control nodes
    drm/rockchip: cdn-dp: Fix error handling
    drm/rockchip: add extcon dependency for DP
    drm: zte: fix static checker warning on variable 'fmt'

    Linus Torvalds
     

01 Mar, 2017

15 commits

  • Linus reported the following commit broke module loading on his laptop:

    d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")

    It showed errors like the following:

    module: overflow in relocation type 10 val ffffffffc02afc81
    module: 'nvme' likely not compiled with -mcmodel=kernel

    The problem is that the __unreachable section addresses are stored using
    the '.long' asm directive, which isn't big enough for .text section
    kernel addresses. Use relative addresses instead:

    ".long %c0b - .\t\n"

    Suggested-by: Linus Torvalds
    Reported-by: Linus Torvalds
    Signed-off-by: Josh Poimboeuf
    Cc: Peter Zijlstra
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
    Link: http://lkml.kernel.org/r/20170301060504.oltm3iws6fmubnom@treble
    Signed-off-by: Ingo Molnar

    Josh Poimboeuf
     
  • Pull IPMI updates from Corey Minyard:
    "This is a few small fixes to the main IPMI driver, make some things
    const, fix typos, etc.

    The last patch came in about a week ago, but IMHO it's best to go in
    now. It is not for the main driver, it's for the bt-bmc driver, which
    runs on the managment controller side, not on the host side, so the
    scope is limited and the change is necessary"

    * tag 'for-linus-4.11' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: bt-bmc: Use a regmap for register access
    char: ipmi: constify ipmi_smi_handlers structures
    acpi:ipmi: Make IPMI user handler const
    ipmi: make ipmi_usr_hndl const
    Documentation: Fix a typo in IPMI.txt.

    Linus Torvalds
     
  • Pull IDR rewrite from Matthew Wilcox:
    "The most significant part of the following is the patch to rewrite the
    IDR & IDA to be clients of the radix tree. But there's much more,
    including an enhancement of the IDA to be significantly more space
    efficient, an IDR & IDA test suite, some improvements to the IDR API
    (and driver changes to take advantage of those improvements), several
    improvements to the radix tree test suite and RCU annotations.

    The IDR & IDA rewrite had a good spin in linux-next and Andrew's tree
    for most of the last cycle. Coupled with the IDR test suite, I feel
    pretty confident that any remaining bugs are quite hard to hit. 0-day
    did a great job of watching my git tree and pointing out problems; as
    it hit them, I added new test-cases to be sure not to be caught the
    same way twice"

    Willy goes on to expand a bit on the IDR rewrite rationale:
    "The radix tree and the IDR use very similar data structures.

    Merging the two codebases lets us share the memory allocation pools,
    and results in a net deletion of 500 lines of code. It also opens up
    the possibility of exposing more of the features of the radix tree to
    users of the IDR (and I have some interesting patches along those
    lines waiting for 4.12)

    It also shrinks the size of the 'struct idr' from 40 bytes to 24 which
    will shrink a fair few data structures that embed an IDR"

    * 'idr-4.11' of git://git.infradead.org/users/willy/linux-dax: (32 commits)
    radix tree test suite: Add config option for map shift
    idr: Add missing __rcu annotations
    radix-tree: Fix __rcu annotations
    radix-tree: Add rcu_dereference and rcu_assign_pointer calls
    radix tree test suite: Run iteration tests for longer
    radix tree test suite: Fix split/join memory leaks
    radix tree test suite: Fix leaks in regression2.c
    radix tree test suite: Fix leaky tests
    radix tree test suite: Enable address sanitizer
    radix_tree_iter_resume: Fix out of bounds error
    radix-tree: Store a pointer to the root in each node
    radix-tree: Chain preallocated nodes through ->parent
    radix tree test suite: Dial down verbosity with -v
    radix tree test suite: Introduce kmalloc_verbose
    idr: Return the deleted entry from idr_remove
    radix tree test suite: Build separate binaries for some tests
    ida: Use exceptional entries for small IDAs
    ida: Move ida_bitmap to a percpu variable
    Reimplement IDR and IDA using the radix tree
    radix-tree: Add radix_tree_iter_delete
    ...

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:
    "Fix an issue introduced this merge window into the AMD and Intel IOMMU
    drivers that causes an oops when the vendor-specific sysfs-entries are
    accessed.

    The reason for this issue is that I forgot to update the sysfs code in
    the drivers when moving the iommu 'struct device' to the iommu-core"

    * tag 'iommu-fix-v4.11-rc0-2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/amd: Fix crash when accessing AMD-Vi sysfs entries
    iommu/vt-d: Fix crash when accessing VT-d sysfs entries

    Linus Torvalds
     
  • Pull nfsd updates from Bruce Fields:
    "The nfsd update this round is mainly a lot of miscellaneous cleanups
    and bugfixes.

    A couple changes could theoretically break working setups on upgrade.
    I don't expect complaints in practice, but they seem worth calling out
    just in case:

    - NFS security labels are now off by default; a new security_label
    export flag reenables it per export. But, having them on by default
    is a disaster, as it generally only makes sense if all your clients
    and servers have similar enough selinux policies. Thanks to Jason
    Tibbitts for pointing this out.

    - NFSv4/UDP support is off. It was never really supported, and the
    spec explicitly forbids it. We only ever left it on out of
    laziness; thanks to Jeff Layton for finally fixing that"

    * tag 'nfsd-4.11' of git://linux-nfs.org/~bfields/linux: (34 commits)
    nfsd: Fix display of the version string
    nfsd: fix configuration of supported minor versions
    sunrpc: don't register UDP port with rpcbind when version needs congestion control
    nfs/nfsd/sunrpc: enforce transport requirements for NFSv4
    sunrpc: flag transports as having congestion control
    sunrpc: turn bitfield flags in svc_version into bools
    nfsd: remove superfluous KERN_INFO
    nfsd: special case truncates some more
    nfsd: minor nfsd_setattr cleanup
    NFSD: Reserve adequate space for LOCKT operation
    NFSD: Get response size before operation for all RPCs
    nfsd/callback: Drop a useless data copy when comparing sessionid
    nfsd/callback: skip the callback tag
    nfsd/callback: Cleanup callback cred on shutdown
    nfsd/idmap: return nfserr_inval for 0-length names
    SUNRPC/Cache: Always treat the invalid cache as unexpired
    SUNRPC: Drop all entries from cache_detail when cache_purge()
    svcrdma: Poll CQs in "workqueue" mode
    svcrdma: Combine list fields in struct svc_rdma_op_ctxt
    svcrdma: Remove unused sc_dto_q field
    ...

    Linus Torvalds
     
  • Pull ceph updates from Ilya Dryomov:
    "This time around we have:

    - support for rbd data-pool feature, which enables rbd images on
    erasure-coded pools (myself). CEPH_PG_MAX_SIZE has been bumped to
    allow erasure-coded profiles with k+m up to 32.

    - a patch for ceph_d_revalidate() performance regression introduced
    in 4.9, along with some cleanups in the area (Jeff Layton)

    - a set of fixes for unsafe ->d_parent accesses in CephFS (Jeff
    Layton)

    - buffered reads are now processed in rsize windows instead of rasize
    windows (Andreas Gerstmayr). The new default for rsize mount option
    is 64M.

    - ack vs commit distinction is gone, greatly simplifying ->fsync()
    and MOSDOpReply handling code (myself)

    ... also a few filesystem bug fixes from Zheng, a CRUSH sync up (CRUSH
    computations are still serialized though) and several minor fixes and
    cleanups all over"

    * tag 'ceph-for-4.11-rc1' of git://github.com/ceph/ceph-client: (52 commits)
    libceph, rbd, ceph: WRITE | ONDISK -> WRITE
    libceph: get rid of ack vs commit
    ceph: remove special ack vs commit behavior
    ceph: tidy some white space in get_nonsnap_parent()
    crush: fix dprintk compilation
    crush: do is_out test only if we do not collide
    ceph: remove req from unsafe list when unregistering it
    rbd: constify device_type structure
    rbd: kill obj_request->object_name and rbd_segment_name_cache
    rbd: store and use obj_request->object_no
    rbd: RBD_V{1,2}_DATA_FORMAT macros
    rbd: factor out __rbd_osd_req_create()
    rbd: set offset and length outside of rbd_obj_request_create()
    rbd: support for data-pool feature
    rbd: introduce rbd_init_layout()
    rbd: use rbd_obj_bytes() more
    rbd: remove now unused rbd_obj_request_wait() and helpers
    rbd: switch rbd_obj_method_sync() to ceph_osdc_call()
    libceph: pass reply buffer length through ceph_osdc_call()
    rbd: do away with obj_request in rbd_obj_read_sync()
    ...

    Linus Torvalds
     
  • The sequencer FIFO management has a bug that may lead to a corruption
    (shortage) of the cell linked list. When a sequencer client faces an
    error at the event delivery, it tries to put back the dequeued cell.
    When the first queue was put back, this forgot the tail pointer
    tracking, and the link will be screwed up.

    Although there is no memory corruption, the sequencer client may stall
    forever at exit while flushing the pending FIFO cells in
    snd_seq_pool_done(), as spotted by syzkaller.

    This patch addresses the missing tail pointer tracking at
    snd_seq_fifo_cell_putback(). Also the patch makes sure to clear the
    cell->enxt pointer at snd_seq_fifo_event_in() for avoiding a similar
    mess-up of the FIFO linked list.

    Reported-by: Dmitry Vyukov
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Pull ARM updates from Russell King:

    - nommu updates from Afzal Mohammed cleaning up the vectors support

    - allow DMA memory "mapping" for nommu Benjamin Gaignard

    - fixing a correctness issue with R_ARM_PREL31 relocations in the
    module linker

    - add strlen() prototype for the decompressor

    - support for DEBUG_VIRTUAL from Florian Fainelli

    - adjusting memory bounds after memory reservations have been
    registered

    - unipher cache handling updates from Masahiro Yamada

    - initrd and Thumb Kconfig cleanups

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (23 commits)
    ARM: mm: round the initrd reservation to page boundaries
    ARM: mm: clean up initrd initialisation
    ARM: mm: move initrd init code out of arm_memblock_init()
    ARM: 8655/1: improve NOMMU definition of pgprot_*()
    ARM: 8654/1: decompressor: add strlen prototype
    ARM: 8652/1: cache-uniphier: clean up active way setup code
    ARM: 8651/1: cache-uniphier: include instead of
    ARM: 8650/1: module: handle negative R_ARM_PREL31 addends correctly
    ARM: 8649/2: nommu: remove Hivecs configuration is asm
    ARM: 8648/2: nommu: display vectors base
    ARM: 8647/2: nommu: dynamic exception base address setting
    ARM: 8646/1: mmu: decouple VECTORS_BASE from Kconfig
    ARM: 8644/1: Reduce "CPU: shutdown" message to debug level
    ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol
    ARM: 8640/1: Add support for CONFIG_DEBUG_VIRTUAL
    ARM: 8639/1: Define KERNEL_START and KERNEL_END
    ARM: 8638/1: mtd: lart: Rename partition defines to be prefixed with PART_
    ARM: 8637/1: Adjust memory boundaries after reservations
    ARM: 8636/1: Cleanup sanity_check_meminfo
    ARM: add CPU_THUMB_CAPABLE to indicate possible Thumb support
    ...

    Linus Torvalds
     
  • Pull x86 fixes from Ingo Molnar:
    "Two documentation updates, plus a debugging annotation fix"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/crash: Update the stale comment in reserve_crashkernel()
    x86/irq, trace: Add __irq_entry annotation to x86's platform IRQ handlers
    Documentation, x86, resctrl: Recommend locking for resctrlfs

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Two rq-clock warnings related fixes, plus a cgroups related crash fix"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/cgroup: Move sched_online_group() back into css_online() to fix crash
    sched/fair: Update rq clock before changing a task's CPU affinity
    sched/core: Fix update_rq_clock() splat on hotplug (and suspend/resume)

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Misc fixes on the kernel and tooling side - nothing in particular
    stands out"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    perf/core: Fix the perf_cpu_time_max_percent check
    perf/core: Fix perf_event_enable_on_exec() timekeeping (again)
    perf/core: Remove confusing comment and move put_ctx()
    perf record: Honor --quiet option properly
    perf annotate: Add -q/--quiet option
    perf diff: Add -q/--quiet option
    perf report: Add -q/--quiet option
    perf utils: Check verbose flag properly
    perf utils: Add perf_quiet_option()
    perf record: Add -a as default target
    perf stat: Add -a as default target
    perf tools: Fail on using multiple bits long terms without value
    perf tools: Move new_term arguments into struct parse_events_term template
    perf build: Add special fixdep cleaning rule
    perf tools: Replace _SC_NPROCESSORS_CONF with max_present_cpu in cpu_topology_map
    perf header: Make build_cpu_topology skip offline/absent CPUs
    perf cpumap: Add cpu__max_present_cpu()
    perf session: Fix DEBUG=1 build with clang
    tools lib traceevent: It's preempt not prempt
    perf python: Filter out -specs=/a/b/c from the python binding cc options
    ...

    Linus Torvalds
     
  • Pull locking fixes from Ingo Molnar:
    "The main change is the uninlining of large refcount_t APIs, plus a
    header dependency fix.

    Note that the uninlining allowed us to enable the underflow/overflow
    warnings unconditionally and remove the debug Kconfig switch: this
    might trigger new warnings in buggy code and turn
    crashes/use-after-free bugs into less harmful memory leaks"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/refcounts: Add missing kernel.h header to have UINT_MAX defined
    locking/refcounts: Out-of-line everything

    Linus Torvalds
     
  • Pull objtool fixes from Ingo Molnar:
    "A handful of objtool fixes related to unreachable code, plus a build
    fix for out of tree modules"

    * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    objtool: Enclose contents of unreachable() macro in a block
    objtool: Prevent GCC from merging annotate_unreachable()
    objtool: Improve detection of BUG() and other dead ends
    objtool: Fix CONFIG_STACK_VALIDATION=y warning for out-of-tree modules

    Linus Torvalds
     
  • Pull IDE updates from David Miller:
    "Just one actual change here this time around, adding some init data
    annotations. The other change was bogus and got reverted"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide:
    ide: palm_bk3710: add __initdata to palm_bk3710_port_info
    Revert "ide: Fix interface autodetection in legacy IDE driver (trial #2)"
    ide: Fix interface autodetection in legacy IDE driver (trial #2)

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Don't save TIPC header values before the header has been validated,
    from Jon Paul Maloy.

    2) Fix memory leak in RDS, from Zhu Yanjun.

    3) We miss to initialize the UID in the flow key in some paths, from
    Julian Anastasov.

    4) Fix latent TOS masking bug in the routing cache removal from years
    ago, also from Julian.

    5) We forget to set the sockaddr port in sctp_copy_local_addr_list(),
    fix from Xin Long.

    6) Missing module ref count drop in packet scheduler actions, from
    Roman Mashak.

    7) Fix RCU annotations in rht_bucket_nested, from Herbert Xu.

    8) Fix use after free which happens because L2TP's ipv4 support returns
    non-zero values from it's backlog_rcv function which ipv4 interprets
    as protocol values. Fix from Paul Hüber.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (35 commits)
    qed: Don't use attention PTT for configuring BW
    qed: Fix race with multiple VFs
    l2tp: avoid use-after-free caused by l2tp_ip_backlog_recv
    xfrm: provide correct dst in xfrm_neigh_lookup
    rhashtable: Fix RCU dereference annotation in rht_bucket_nested
    rhashtable: Fix use before NULL check in bucket_table_free
    net sched actions: do not overwrite status of action creation.
    rxrpc: Kernel calls get stuck in recvmsg
    net sched actions: decrement module reference count after table flush.
    lib: Allow compile-testing of parman
    ipv6: check sk sk_type and protocol early in ip_mroute_set/getsockopt
    sctp: set sin_port for addr param when checking duplicate address
    net/mlx4_en: fix overflow in mlx4_en_init_timestamp()
    netfilter: nft_set_bitmap: incorrect bitmap size
    net: s2io: fix typo argumnet argument
    net: vxge: fix typo argumnet argument
    netfilter: nf_ct_expect: Change __nf_ct_expect_check() return value.
    ipv4: mask tos for input route
    ipv4: add missing initialization for flowi4_uid
    lib: fix spelling mistake: "actualy" -> "actually"
    ...

    Linus Torvalds