09 Mar, 2015

1 commit

  • Workqueues are used extensively throughout the kernel but sometimes
    it's difficult to debug stalls involving work items because visibility
    into its inner workings is fairly limited. Although sysrq-t task dump
    annotates each active worker task with the information on the work
    item being executed, it is challenging to find out which work items
    are pending or delayed on which queues and how pools are being
    managed.

    This patch implements show_workqueue_state() which dumps all busy
    workqueues and pools and is called from the sysrq-t handler. At the
    end of sysrq-t dump, something like the following is printed.

    Showing busy workqueues and worker pools:
    ...
    workqueue filler_wq: flags=0x0
    pwq 2: cpus=1 node=0 flags=0x0 nice=0 active=2/256
    in-flight: 491:filler_workfn, 507:filler_workfn
    pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=2/256
    in-flight: 501:filler_workfn
    pending: filler_workfn
    ...
    workqueue test_wq: flags=0x8
    pwq 2: cpus=1 node=0 flags=0x0 nice=0 active=1/1
    in-flight: 510(RESCUER):test_workfn BAR(69) BAR(500)
    delayed: test_workfn1 BAR(492), test_workfn2
    ...
    pool 0: cpus=0 node=0 flags=0x0 nice=0 workers=2 manager: 137
    pool 2: cpus=1 node=0 flags=0x0 nice=0 workers=3 manager: 469
    pool 3: cpus=1 node=0 flags=0x0 nice=-20 workers=2 idle: 16
    pool 8: cpus=0-3 flags=0x4 nice=0 workers=2 manager: 62

    The above shows that test_wq is executing test_workfn() on pid 510
    which is the rescuer and also that there are two tasks 69 and 500
    waiting for the work item to finish in flush_work(). As test_wq has
    max_active of 1, there are two work items for test_workfn1() and
    test_workfn2() which are delayed till the current work item is
    finished. In addition, pid 492 is flushing test_workfn1().

    The work item for test_workfn() is being executed on pwq of pool 2
    which is the normal priority per-cpu pool for CPU 1. The pool has
    three workers, two of which are executing filler_workfn() for
    filler_wq and the last one is assuming the manager role trying to
    create more workers.

    This extra workqueue state dump will hopefully help chasing down hangs
    involving workqueues.

    v3: cpulist_pr_cont() replaced with "%*pbl" printf formatting.

    v2: As suggested by Andrew, minor formatting change in pr_cont_work(),
    printk()'s replaced with pr_info()'s, and cpumask printing now
    uses cpulist_pr_cont().

    Signed-off-by: Tejun Heo
    Cc: Lai Jiangshan
    Cc: Linus Torvalds
    Cc: Andrew Morton
    CC: Ingo Molnar

    Tejun Heo
     

23 Feb, 2015

1 commit

  • Pull more vfs updates from Al Viro:
    "Assorted stuff from this cycle. The big ones here are multilayer
    overlayfs from Miklos and beginning of sorting ->d_inode accesses out
    from David"

    * 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (51 commits)
    autofs4 copy_dev_ioctl(): keep the value of ->size we'd used for allocation
    procfs: fix race between symlink removals and traversals
    debugfs: leave freeing a symlink body until inode eviction
    Documentation/filesystems/Locking: ->get_sb() is long gone
    trylock_super(): replacement for grab_super_passive()
    fanotify: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
    Cachefiles: Fix up scripted S_ISDIR/S_ISREG/S_ISLNK conversions
    VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
    SELinux: Use d_is_positive() rather than testing dentry->d_inode
    Smack: Use d_is_positive() rather than testing dentry->d_inode
    TOMOYO: Use d_is_dir() rather than d_inode and S_ISDIR()
    Apparmor: Use d_is_positive/negative() rather than testing dentry->d_inode
    Apparmor: mediated_filesystem() should use dentry->d_sb not inode->i_sb
    VFS: Split DCACHE_FILE_TYPE into regular and special types
    VFS: Add a fallthrough flag for marking virtual dentries
    VFS: Add a whiteout dentry type
    VFS: Introduce inode-getting helpers for layered/unioned fs environments
    Infiniband: Fix potential NULL d_inode dereference
    posix_acl: fix reference leaks in posix_acl_create
    autofs4: Wrong format for printing dentry
    ...

    Linus Torvalds
     

22 Feb, 2015

14 commits

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS:

    - a number of fixes that didn't make the 3.19 release.

    - a number of cleanups.

    - preliminary support for Cavium's Octeon 3 SOCs which feature up to
    48 MIPS64 R3 cores with FPU and hardware virtualization.

    - support for MIPS R6 processors.

    Revision 6 of the MIPS architecture is a major revision of the MIPS
    architecture which does away with many of original sins of the
    architecture such as branch delay slots. This and other changes in
    R6 require major changes throughout the entire MIPS core
    architecture code and make up for the lion share of this pull
    request.

    - finally some preparatory work for eXtendend Physical Address
    support, which allows support of up to 40 bit of physical address
    space on 32 bit processors"

    [ Ahh, MIPS can't leave the PAE brain damage alone. It's like
    every CPU architect has to make that mistake, but pee in the snow
    by changing the TLA. But whether it's called PAE, LPAE or XPA,
    it's horrid crud - Linus ]

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (114 commits)
    MIPS: sead3: Corrected get_c0_perfcount_int
    MIPS: mm: Remove dead macro definitions
    MIPS: OCTEON: irq: add CIB and other fixes
    MIPS: OCTEON: Don't do acknowledge operations for level triggered irqs.
    MIPS: OCTEON: More OCTEONIII support
    MIPS: OCTEON: Remove setting of processor specific CVMCTL icache bits.
    MIPS: OCTEON: Core-15169 Workaround and general CVMSEG cleanup.
    MIPS: OCTEON: Update octeon-model.h code for new SoCs.
    MIPS: OCTEON: Implement DCache errata workaround for all CN6XXX
    MIPS: OCTEON: Add little-endian support to asm/octeon/octeon.h
    MIPS: OCTEON: Implement the core-16057 workaround
    MIPS: OCTEON: Delete unused COP2 saving code
    MIPS: OCTEON: Use correct instruction to read 64-bit COP0 register
    MIPS: OCTEON: Save and restore CP2 SHA3 state
    MIPS: OCTEON: Fix FP context save.
    MIPS: OCTEON: Save/Restore wider multiply registers in OCTEON III CPUs
    MIPS: boot: Provide more uImage options
    MIPS: Remove unneeded #ifdef __KERNEL__ from asm/processor.h
    MIPS: ip22-gio: Remove legacy suspend/resume support
    mips: pci: Add ifdef around pci_proc_domain
    ...

    Linus Torvalds
     
  • Pull misc SCSI patches from James Bottomley:
    "This is a short patch set representing a couple of left overs from the
    merge window (debug removal and MAINTAINER changes).

    Plus one merge window regression (the local workqueue for hpsa) and a
    set of bug fixes for several issues (two for scsi-mq and the rest an
    assortment of long standing stuff, all cc'd to stable)"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    sg: fix EWOULDBLOCK errors with scsi-mq
    sg: fix unkillable I/O wait deadlock with scsi-mq
    sg: fix read() error reporting
    wd719x: add missing .module to wd719x_template
    hpsa: correct compiler warnings introduced by hpsa-add-local-workqueue patch
    fixed invalid assignment of 64bit mask to host dma_boundary for scatter gather segment boundary limit.
    fcoe: Transition maintainership to Vasu
    am53c974: remove left-over debugging code

    Linus Torvalds
     
  • Pull one more batch of power management and ACPI updates from Rafael Wysocki:
    "These are mostly fixes on top of the previously merged recent PM and
    ACPI material.

    First, one commit that broke the ACPI LPSS (Low-Power Subsystem)
    driver on a Dell box is reverted and there are two stable-candidate
    fixes for that driver. Another fix cleans up two recently added ACPI
    EC messages that look odd and the printk level of a noisy debug
    message in the core ACPI resources handling code is reduced.

    In addition to that we have two stable-candidate fixes for the s3c
    cpufreq driver, two cpuidle powernv driver updates related to Device
    Trees and a PNP subsystem cleanup that will allow us to get rid of
    some old ugliness going forward. Also there is a new blacklist entry
    for the ACPI backlight code.

    Specifics:

    - Revert a recent ACPI LPSS driver commit that prevented the touchpad
    driver from loading on Dell XPS13 (Jarkko Nikula).

    - Make the ACPI LPSS driver disable the I2C controllers and deassert
    SPI host controllers resets at startup on Intel BayTrail and
    Braswell SoCs in case they have been left in wrong states by the
    platform firmware which then may casuse fatal controller driver
    failures during resume from hibernation (Mika Westerberg).

    - Make two recently added ACPI EC messages look better (Scot Doyle).

    - Reduce the printk level of a recently added debug message related
    to ACPI resources that may become noisy in some cases (Rafael J
    Wysocki).

    - Add a new ACPI backlight blacklist entry for Samsung Series 9
    (900X3C/900X3D/900X3E/900X4C/900X4D) laptops where the native
    backlight interface doesn't work while the ACPI based one does
    (Jens Reyer).

    - Make the PNP sybsystem's core code use __request_region() followed
    by __release_region() instead of __check_region() which then will
    allow us to get rid of the latter as it has no more users (Jakub
    Sitnicki).

    - Fix a build breakage and an issue with two __init functions that
    may be called after initialization in the s3c cpufreq driver (Arnd
    Bergmann).

    - Make the powernv cpuidle driver read target_residency values for
    idle states from a Device Tree (as we have the suitable DT bindings
    for that now) and improve the parsing of the powermgmt DT node in
    that driver (Preeti U Murthy)"

    * tag 'pm+acpi-3.20-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    cpuidle: powernv: Avoid endianness conversions while parsing DT
    cpufreq: s3c: remove last use of resume_clocks callback
    cpufreq: s3c: remove incorrect __init annotations
    ACPI / LPSS: Deassert resets for SPI host controllers on Braswell
    ACPI / LPSS: Always disable I2C host controllers
    ACPI / resources: Change pr_info() to pr_debug() for debug information
    ACPI / video: Disable native backlight on Samsung Series 9 laptops
    cpuidle: powernv: Read target_residency value of idle states from DT if available
    Revert "ACPI / LPSS: Remove non-existing clock control from Intel Lynxpoint I2C"
    ACPI / EC: Remove non-standard log emphasis
    PNP: Switch from __check_region() to __request_region()

    Linus Torvalds
     
  • Pull followup block layer updates from Jens Axboe:
    "Two things in this pull request:

    - A block throttle oops fix (marked for stable) from Thadeu.

    - The NVMe fixes/features queued up for 3.20, but merged later in the
    process. From Keith. We should have gotten this merged earlier,
    we're ironing out the kinks in the process. Will be ready for the
    initial pull next series"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    blk-throttle: check stats_cpu before reading it from sysfs
    NVMe: Fix potential corruption on sync commands
    NVMe: Remove unused variables
    NVMe: Fix scsi mode select llbaa setting
    NVMe: Fix potential corruption during shutdown
    NVMe: Asynchronous controller probe
    NVMe: Register management handle under nvme class
    NVMe: Update SCSI Inquiry VPD 83h translation
    NVMe: Metadata format support

    Linus Torvalds
     
  • …evice-mapper/linux-dm

    Pull more device mapper changes from Mike Snitzer:

    - Significant dm-crypt CPU scalability performance improvements thanks
    to changes that enable effective use of an unbound workqueue across
    all available CPUs. A large battery of tests were performed to
    validate these changes, summary of results is available here:
    https://www.redhat.com/archives/dm-devel/2015-February/msg00106.html

    - A few additional stable fixes (to DM core, dm-snapshot and dm-mirror)
    and a small fix to the dm-space-map-disk.

    * tag 'dm-3.20-changes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm snapshot: fix a possible invalid memory access on unload
    dm: fix a race condition in dm_get_md
    dm crypt: sort writes
    dm crypt: add 'submit_from_crypt_cpus' option
    dm crypt: offload writes to thread
    dm crypt: remove unused io_pool and _crypt_io_pool
    dm crypt: avoid deadlock in mempools
    dm crypt: don't allocate pages for a partial request
    dm crypt: use unbound workqueue for request processing
    dm io: reject unsupported DISCARD requests with EOPNOTSUPP
    dm mirror: do not degrade the mirror on discard error
    dm space map disk: fix sm_disk_count_is_more_than_one()

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "The highlights this round include:

    - Update vhost-scsi to support F_ANY_LAYOUT using mm/iov_iter.c
    logic, and signal VERSION_1 support (MST + Viro + nab)

    - Fix iscsi/iser-target to remove problematic active_ts_set usage
    (Gavin Guo)

    - Update iscsi/iser-target to support multi-sequence sendtargets
    (Sagi)

    - Fix original PR_APTPL_BUF_LEN 8k size limitation (Martin Svec)

    - Add missing WRITE_SAME end-of-device sanity check (Bart)

    - Check for LBA + sectors wrap-around in sbc_parse_cdb() (nab)

    - Other various minor SPC/SBC compliance fixes based upon Ronnie
    Sahlberg test suite (nab)"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (32 commits)
    target: Set LBPWS10 bit in Logical Block Provisioning EVPD
    target: Fail UNMAP when emulate_tpu=0
    target: Fail WRITE_SAME w/ UNMAP=1 when emulate_tpws=0
    target: Add sanity checks for DPO/FUA bit usage
    target: Perform PROTECT sanity checks for WRITE_SAME
    target: Fail I/O with PROTECT bit when protection is unsupported
    target: Check for LBA + sectors wrap-around in sbc_parse_cdb
    target: Add missing WRITE_SAME end-of-device sanity check
    iscsi-target: Avoid IN_LOGOUT failure case for iser-target
    target: Fix PR_APTPL_BUF_LEN buffer size limitation
    iscsi-target: Drop problematic active_ts_list usage
    iscsi/iser-target: Support multi-sequence sendtargets text response
    iser-target: Remove duplicate function names
    vhost/scsi: potential memory corruption
    vhost/scsi: Global tcm_vhost -> vhost_scsi rename
    vhost/scsi: Drop left-over scsi_tcq.h include
    vhost/scsi: Set VIRTIO_F_ANY_LAYOUT + VIRTIO_F_VERSION_1 feature bits
    vhost/scsi: Add ANY_LAYOUT support in vhost_scsi_handle_vq
    vhost/scsi: Add ANY_LAYOUT iov -> sgl mapping prerequisites
    vhost/scsi: Change vhost_scsi_map_to_sgl to accept iov ptr + len
    ...

    Linus Torvalds
     
  • Pull more input updates from Dmitry Torokhov:
    "The second round of updates for the input subsystem.

    Updates to ALPS an bfin_roraty drivers and a couple oother fixups"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: psmouse - use IS_ENABLED instead of homegrown code
    Input: bfin_rotary - introduce open and close methods
    Input: bfin_rotary - convert to use managed resources
    Input: bfin_rotary - use generic IO functions
    Input: bfin_rotary - move pin lists into into platform data
    Input: bfin_rotary - move platform header to linux/platform_data
    Input: bfin_rotary - mark suspend and resume code as __maybe_unused
    Input: bfin_rotary - fix potential oops in interrupt handler
    Input: ALPS - move v7 packet info to Documentation and v6 packet info
    Input: ALPS - fix confusing comment in protocol data
    Input: ALPS - do not mix trackstick and external PS/2 mouse data
    Input: ALPS - fix trackstick detection on some Dell Latitudes
    Input: ALPS - consolidate setting protocol parameters
    Input: ALPS - split protocol data from model info
    Input: ALPS - make Rushmore a separate protocol
    Input: ALPS - renumber protocol numbers
    Input: adi - remove an unnecessary check
    Input: pxa27x_keypad - remove an unneeded NULL check
    Input: soc_button_array - use "Windows" key for "Home"

    Linus Torvalds
     
  • Pull InfiniBand/RDMA updates from Roland Dreier:
    - Re-enable on-demand paging changes with stable ABI
    - Fairly large set of ocrdma HW driver fixes
    - Some qib HW driver fixes
    - Other miscellaneous changes

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (43 commits)
    IB/qib: Add blank line after declaration
    IB/qib: Fix checkpatch warnings
    IB/mlx5: Enable the ODP capability query verb
    IB/core: Add on demand paging caps to ib_uverbs_ex_query_device
    IB/core: Add support for extended query device caps
    RDMA/cxgb4: Don't hang threads forever waiting on WR replies
    RDMA/ocrdma: Fix off by one in ocrdma_query_gid()
    RDMA/ocrdma: Use unsigned for bit index
    RDMA/ocrdma: Help gcc generate better code for ocrdma_srq_toggle_bit
    RDMA/ocrdma: Update the ocrdma module version string
    RDMA/ocrdma: set vlan present bit for user AH
    RDMA/ocrdma: remove reference of ocrdma_dev out of ocrdma_qp structure
    RDMA/ocrdma: Add support for interrupt moderation
    RDMA/ocrdma: Honor return value of ocrdma_resolve_dmac
    RDMA/ocrdma: Allow expansion of the SQ CQEs via buddy CQ expansion of the QP
    RDMA/ocrdma: Discontinue support of RDMA-READ-WITH-INVALIDATE
    RDMA/ocrdma: Host crash on destroying device resources
    RDMA/ocrdma: Report correct state in ibv_query_qp
    RDMA/ocrdma: Debugfs enhancments for ocrdma driver
    RDMA/ocrdma: Report correct count of interrupt vectors while registering ocrdma device
    ...

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:
    "Summary:

    - legacy PM code removed from the core, there were no users anymore
    (thanks to Lars-Peter Clausen)

    - new driver for Broadcom iProc

    - bigger driver updates for designware, rk3x, cadence, ocores

    - a bunch of smaller updates and bugfixes"

    * 'i2c/for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (31 commits)
    i2c: ocores: rework clk code to handle NULL cookie
    i2c: designware-baytrail: another fixup for proper Kconfig dependencies
    i2c: fix reference to functionality constants definition
    i2c: iproc: Add Broadcom iProc I2C Driver
    i2c: designware-pci: update Intel copyright line
    i2c: ocores: add common clock support
    i2c: hix5hd2: add COMPILE_TEST
    i2c: clarify comments about the dev_released completion
    i2c: ocores: fix clock-frequency binding usage
    i2c: tegra: Maintain CPU endianness
    i2c: designware-baytrail: use proper Kconfig dependencies
    i2c: designware: Do not calculate SCL timing parameters needlessly
    i2c: do not try to load modules for of-registered devices
    i2c: designware: Add Intel Baytrail PMIC I2C bus support
    i2c: designware: Add i2c bus locking support
    of: i2c: Add i2c-mux-idle-disconnect DT property to PCA954x mux driver
    i2c: designware: use {readl|writel}_relaxed instead of readl/writel
    i2c: designware-pci: no need to provide clk_khz
    i2c: designware-pci: remove Moorestown support
    i2c: imx: whitespace and checkpatch cleanup
    ...

    Linus Torvalds
     
  • Pull clock framework updates from Mike Turquette:
    "The clock framework changes contain the usual driver additions,
    enhancements and fixes mostly for ARM32, ARM64, MIPS and Power-based
    devices.

    Additionally the framework core underwent a bit of surgery with two
    major changes:

    - The boundary between the clock core and clock providers (e.g clock
    drivers) is now more well defined with dedicated provider helper
    functions. struct clk no longer maps 1:1 with the hardware clock
    but is a true per-user cookie which helps us tracker users of
    hardware clocks and debug bad behavior.

    - The addition of rate constraints for clocks. Rate ranges are now
    supported which are analogous to the voltage ranges in the
    regulator framework.

    Unfortunately these changes to the core created some breakeage. We
    think we fixed it all up but for this reason there are lots of last
    minute commits trying to undo the damage"

    * tag 'clk-for-linus-3.20' of git://git.linaro.org/people/mike.turquette/linux: (113 commits)
    clk: Only recalculate the rate if needed
    Revert "clk: mxs: Fix invalid 32-bit access to frac registers"
    clk: qoriq: Add support for the platform PLL
    powerpc/corenet: Enable CLK_QORIQ
    clk: Replace explicit clk assignment with __clk_hw_set_clk
    clk: Add __clk_hw_set_clk helper function
    clk: Don't dereference parent clock if is NULL
    MIPS: Alchemy: Remove bogus args from alchemy_clk_fgcs_detr
    clkdev: Always allocate a struct clk and call __clk_get() w/ CCF
    clk: shmobile: div6: Avoid division by zero in .round_rate()
    clk: mxs: Fix invalid 32-bit access to frac registers
    clk: omap: compile legacy omap3 clocks conditionally
    clkdev: Export clk_register_clkdev
    clk: Add rate constraints to clocks
    clk: remove clk-private.h
    pci: xgene: do not use clk-private.h
    arm: omap2+ remove dead clock code
    clk: Make clk API return per-user struct clk instances
    clk: tegra: Define PLLD_DSI and remove dsia(b)_mux
    clk: tegra: Add support for the Tegra132 CAR IP block
    ...

    Linus Torvalds
     
  • Pull VFIO updates from Alex Williamson:

    - IOMMU updates based on trace analysis
    - VFIO device request interface

    * tag 'vfio-v3.20-rc1' of git://github.com/awilliam/linux-vfio:
    vfio-pci: Add device request interface
    vfio-pci: Generalize setup of simple eventfds
    vfio: Add and use device request op for vfio bus drivers
    vfio: Tie IOMMU group reference to vfio group
    vfio: Add device tracking during unbind
    vfio/type1: Add conditional rescheduling
    vfio/type1: Chunk contiguous reserved/invalid page mappings
    vfio/type1: DMA unmap chunking

    Linus Torvalds
     
  • Pull thermal management fix from Zhang Rui:
    "One patch to fix a problem that all Exynos SoCs will break at boot
    time"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    thermal: exynos: fix: Check if data->tmu_read callback is present before read

    Linus Torvalds
     
  • Pull Intel Quark SoC support from Ingo Molnar:
    "This adds support for Intel Quark X1000 SoC boards, used in the low
    power 32-bit x86 Intel Galileo microcontroller board intended for the
    Arduino space.

    There's been some preparatory core x86 patches for Quark CPU quirks
    merged already, but this rounds it all up and adds Kconfig enablement.
    It's a clean hardware enablement addition tree at this point"

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/intel/quark: Fix simple_return.cocci warnings
    x86/intel/quark: Fix ptr_ret.cocci warnings
    x86/intel/quark: Add Intel Quark platform support
    x86/intel/quark: Add Isolated Memory Regions for Quark X1000

    Linus Torvalds
     
  • Pull misc x86 fixes from Ingo Molnar:
    "This contains:

    - EFI fixes
    - a boot printout fix
    - ASLR/kASLR fixes
    - intel microcode driver fixes
    - other misc fixes

    Most of the linecount comes from an EFI revert"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mm/ASLR: Avoid PAGE_SIZE redefinition for UML subarch
    x86/microcode/intel: Handle truncated microcode images more robustly
    x86/microcode/intel: Guard against stack overflow in the loader
    x86, mm/ASLR: Fix stack randomization on 64-bit systems
    x86/mm/init: Fix incorrect page size in init_memory_mapping() printks
    x86/mm/ASLR: Propagate base load address calculation
    Documentation/x86: Fix path in zero-page.txt
    x86/apic: Fix the devicetree build in certain configs
    Revert "efi/libstub: Call get_memory_map() to obtain map and desc sizes"
    x86/efi: Avoid triple faults during EFI mixed mode calls

    Linus Torvalds
     

21 Feb, 2015

8 commits


20 Feb, 2015

16 commits

  • The exynos_tmu_data() function should on entrance test not only for valid
    data pointer, but also for data->tmu_read one.
    It is important, since afterwards it is dereferenced to get temperature code.

    Signed-off-by: Lukasz Majewski
    Tested-by: Abhilash Kesavan
    Signed-off-by: Zhang Rui

    Lukasz Majewski
     
  • Code that does this:

    if (!(d_unhashed(tmp) && tmp->d_inode)) {
    ...
    simple_unlink(parent->d_inode, tmp);
    }

    is broken because:

    !(d_unhashed(tmp) && tmp->d_inode)

    is equivalent to:

    !d_unhashed(tmp) || !tmp->d_inode

    so it is possible to get into simple_unlink() with tmp->d_inode == NULL.

    simple_unlink(), however, assumes tmp->d_inode cannot be NULL.

    I think that what was meant is this:

    !d_unhashed(tmp) && tmp->d_inode

    and that the logical-not operator or the final close-bracket was misplaced.

    Signed-off-by: David Howells
    cc: Bryan O'Sullivan
    cc: Roland Dreier
    Signed-off-by: Al Viro

    David Howells
     
  • We don't really need to recalculate the effective rate of a clock when a
    per-user clock is removed, if the constraints of the later aren't
    limiting the requested rate.

    This was causing problems with clocks that never had a rate set before,
    as rate_req would be zero. Though this could be considered a bug in the
    implementation of those clocks, this should be checked somewhere else.

    Fixes: 1c8e600440c7 ("clk: Add rate constraints to clocks")
    Cc: Thierry Reding
    Cc: Peter De Schrijver
    Signed-off-by: Tomeu Vizoso
    Signed-off-by: Michael Turquette

    Tomeu Vizoso
     
  • From a locking point of view it is safe to check waiting_msg without
    a lock, but there is a memory ordering issue that causes it to
    possibly not be set right when viewed from another processor. We are
    already claiming a lock right after that, move the check to inside
    the lock to enforce the memory ordering.

    Signed-off-by: Corey Minyard

    Corey Minyard
     
  • The seq_printf like functions will soon be changed to return void.

    Convert these uses to check seq_has_overflowed instead.

    Signed-off-by: Joe Perches
    Signed-off-by: Corey Minyard

    Joe Perches
     
  • Instead of manual calls of device_create_file() and
    device_remove_file(), implement the condition in is_visible callback
    for the attribute group and put these entries to the group, too.
    This simplifies the code and avoids the possible races.

    Signed-off-by: Takashi Iwai
    Signed-off-by: Corey Minyard

    Takashi Iwai
     
  • This adds a loop through the elements in the linked list, recv_msgs using
    list_for_entry_safe in order to free messages in this list. In addition
    we are using the safe version of this marco in order to prevent use after
    bugs related to deleting the element we are on currently by holding a
    pointer to the next element after the current one we are on and freeing
    with the function, ipmi_free_recv_msg internally in this loop.

    Signed-off-by: Nicholas Krause
    Signed-off-by: Corey Minyard

    Nicholas Krause
     
  • A new harmless warning has come up on ARM builds with gcc-4.9:

    drivers/char/ipmi/ipmi_msghandler.c: In function 'smi_send.isra.11':
    include/linux/spinlock.h:372:95: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
    raw_spin_unlock_irqrestore(&lock->rlock, flags);
    ^
    drivers/char/ipmi/ipmi_msghandler.c:1490:16: note: 'flags' was declared here
    unsigned long flags;
    ^

    This could be worked around by initializing the 'flags' variable, but it
    seems better to rework the code to avoid this.

    Signed-off-by: Arnd Bergmann
    Fixes: 7ea0ed2b5be81 ("ipmi: Make the message handler easier to use for SMI interfaces")
    Signed-off-by: Corey Minyard

    Arnd Bergmann
     
  • As part of the internal y2038 cleanup, this patch removes
    timespec usage in the ipmi driver, replacing it timespec64

    Cc: openipmi-developer@lists.sourceforge.net
    Cc: Arnd Bergmann
    Signed-off-by: John Stultz
    Signed-off-by: Corey Minyard

    John Stultz
     
  • The driver uses #ifdef DEBUG_TIMING in order to conditionally print out
    timestamped debug messages. Unfortunately it adds the ifdefs all over the
    usage sites.

    This patch cleans it up by adding a debug_timestamp() function which
    is compiled out if DEBUG_TIMING isn't present. This cleans up all
    the ugly ifdefs in the function logic.

    Cc: openipmi-developer@lists.sourceforge.net
    Cc: Arnd Bergmann
    Signed-off-by: John Stultz
    Signed-off-by: Corey Minyard

    John Stultz
     
  • Removes a no longer needed FIXME comment in the function,acpi_gpe_irq_setup
    for the file,ipmi_si_intf.c. This comment is no longer needed as clearly we
    are passing the correct level of ACPI_GPE_LEVEL_TRIGGERED to the installer
    function,acpi_install_gpe_handler due to no breakage after years of using
    this ACPI level in the function,acpi_install_gpe_handler.

    Signed-off-by: Nicholas Krause
    Signed-off-by: Corey Minyard

    Nicholas Krause
     
  • A few new i2c-drivers came into the kernel which clear the clientdata-pointer
    on exit or error. This is obsolete meanwhile, the core will do it.

    Signed-off-by: Wolfram Sang
    Signed-off-by: Corey Minyard

    Wolfram Sang
     
  • There can't be more than a few IPMI messages allocated at any one time,
    so converting the messages to slabs would be a waste. So just remove
    the FIXME.

    Suggested-by: Nicholas Krause
    Signed-off-by: Corey Minyard

    Corey Minyard
     
  • Pull more thermal managament updates from Zhang Rui:
    "Specifics:

    - Exynos thermal driver refactoring. Several cleanups, code
    optimization, unused symbols removal, and unused feature removal in
    Exynos thermal driver. Thanks Lukasz for this effort.

    - Exynos thermal driver support to OF thermal. After the code
    refactoring, the driver earned the support to OF thermal. Chip
    thermal data were moved from driver code to DTS, reducing the code
    footprint. Thanks Lukasz for this.

    - After receiving the OF thermal support, the exynos thermal driver
    now must allow modular build. Thanks Arnd for detecting, reporting
    and fixing this.

    - Exynos thermal driver support to Exynos 7 SoC. Thanks Abhilash for
    this.

    - Accurate temperature reporting on Rockchip thermal driver, thanks
    to Caesar.

    - Fix on how OF thermal enables its zones, thanks Lukasz for fixing.

    - Fixes in OF thermal examples under Documentation/. Thanks Srinivas
    for fixing"

    * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
    thermal: exynos: Add TMU support for Exynos7 SoC
    dts: Documentation: Add documentation for Exynos7 SoC thermal bindings
    cpufreq: exynos: allow modular build
    thermal: Fix examples in DT documentation
    thermal: exynos: Correct sanity check at exynos_report_trigger() function
    thermal: Kconfig: Remove config for not used EXYNOS_THERMAL_CORE
    thermal: exynos: Remove exynos_tmu_data.c file
    thermal: rockchip: make temperature reporting much more accurate
    thermal: exynos: Remove exynos_thermal_common.[c|h] files
    thermal: samsung: core: Exynos TMU rework to use device tree for configuration
    dts: Documentation: Update exynos-thermal.txt example for Exynos5440
    dts: Documentation: Extending documentation entry for exynos-thermal
    cpufreq: exynos: Use device tree to determine if cpufreq cooling should be registered
    thermal: exynos: Modify exynos thermal code to use device tree for cpu cooling configuration
    thermal: exynos: Provide thermal_exynos.h file to be included in device tree files
    thermal: exynos: cosmetic: Correct comment format
    thermal: of: Enable thermal_zoneX when sensor is correctly added

    Linus Torvalds
     
  • This makes all sync commands uninterruptible and schedules without timeout
    so the controller either has to post a completion or the timeout recovery
    fails the command. This fixes potential memory or data corruption from
    a command timing out too early or woken by a signal. Previously any DMA
    buffers mapped for that command would have been released even though we
    don't know what the controller is planning to do with those addresses.

    Signed-off-by: Keith Busch

    Keith Busch
     
  • We don't track queues in a llist, subscribe to hot-cpu notifications,
    or internally retry commands. Delete the unused artifacts.

    Signed-off-by: Keith Busch

    Keith Busch