04 Sep, 2013

24 commits

  • Pull RCU updates from Ingo Molnar:
    "Main RCU changes this cycle were:

    - Full-system idle detection. This is for use by Frederic
    Weisbecker's adaptive-ticks mechanism. Its purpose is to allow the
    timekeeping CPU to shut off its tick when all other CPUs are idle.

    - Miscellaneous fixes.

    - Improved rcutorture test coverage.

    - Updated RCU documentation"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
    nohz_full: Force RCU's grace-period kthreads onto timekeeping CPU
    nohz_full: Add full-system-idle state machine
    jiffies: Avoid undefined behavior from signed overflow
    rcu: Simplify _rcu_barrier() processing
    rcu: Make rcutorture emit online failures if verbose
    rcu: Remove unused variable from rcu_torture_writer()
    rcu: Sort rcutorture module parameters
    rcu: Increase rcutorture test coverage
    rcu: Add duplicate-callback tests to rcutorture
    doc: Fix memory-barrier control-dependency example
    rcu: Update RTFP documentation
    nohz_full: Add full-system-idle arguments to API
    nohz_full: Add full-system idle states and variables
    nohz_full: Add per-CPU idle-state tracking
    nohz_full: Add rcu_dyntick data for scalable detection of all-idle state
    nohz_full: Add Kconfig parameter for scalable detection of all-idle state
    nohz_full: Add testing information to documentation
    rcu: Eliminate unused APIs intended for adaptive ticks
    rcu: Select IRQ_WORK from TREE_PREEMPT_RCU
    rculist: list_first_or_null_rcu() should use list_entry_rcu()
    ...

    Linus Torvalds
     
  • Pull pwm changes from Thierry Reding:
    "A set of patches makes the device tree documentation for the various
    PWM drivers more consistent. Device tree support is added to the
    Renesas TPU driver. The sysfs interface now makes use of dev_groups.
    Other than that there is a healthy assortment of fixes and
    enhancements for minor issues that have shown up"

    * tag 'for-3.12-rc1' of git://gitorious.org/linux-pwm/linux-pwm:
    pwm: pxa: Use module_platform_driver
    pwm: tiehrpwm: add missing __iomem annotation
    pwm: tiecap: add CONFIG_PM_SLEEP to ecap_pwm_{save,restore}_context()
    pwm: simplify use of devm_ioremap_resource
    pwm: renesas-tpu: Add DT support
    ARM: dts: Use the PWM polarity flags
    pwm: Update DT bindings to reference pwm.txt for cells documentation
    pwm: Use the DT macro directly when parsing PWM DT flags
    pwm: Add PWM polarity flag macro for DT
    pwm: mxs: Check the return value from stmp_reset_block()
    pwm: convert class code to use dev_groups

    Linus Torvalds
     
  • Pull pstore changes from Tony Luck:
    "A big part of this is the addition of compression to the generic
    pstore layer so that all backends can use the pitiful amounts of
    storage they control more effectively. Three other small
    fixes/cleanups too.

    * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    pstore/ram: (really) fix undefined usage of rounddown_pow_of_two
    pstore/ram: Read and write to the 'compressed' flag of pstore
    efi-pstore: Read and write to the 'compressed' flag of pstore
    erst: Read and write to the 'compressed' flag of pstore
    powerpc/pseries: Read and write to the 'compressed' flag of pstore
    pstore: Add file extension to pstore file if compressed
    pstore: Add decompression support to pstore
    pstore: Introduce new argument 'compressed' in the read callback
    pstore: Add compression support to pstore
    pstore/Kconfig: Select ZLIB_DEFLATE and ZLIB_INFLATE when PSTORE is selected
    pstore: Add new argument 'compressed' in pstore write callback
    powerpc/pseries: Remove (de)compression in nvram with pstore enabled
    pstore: d_alloc_name() doesn't return an ERR_PTR
    acpi/apei/erst: Add missing iounmap() on error in erst_exec_move_data()

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:
    "A lot of activities on the cgroup front. Most changes aren't visible
    to userland at all at this point and are laying foundation for the
    planned unified hierarchy.

    - The biggest change is decoupling the lifetime management of css
    (cgroup_subsys_state) from that of cgroup's. Because controllers
    (cpu, memory, block and so on) will need to be dynamically enabled
    and disabled, css which is the association point between a cgroup
    and a controller may come and go dynamically across the lifetime of
    a cgroup. Till now, css's were created when the associated cgroup
    was created and stayed till the cgroup got destroyed.

    Assumptions around this tight coupling permeated through cgroup
    core and controllers. These assumptions are gradually removed,
    which consists bulk of patches, and css destruction path is
    completely decoupled from cgroup destruction path. Note that
    decoupling of creation path is relatively easy on top of these
    changes and the patchset is pending for the next window.

    - cgroup has its own event mechanism cgroup.event_control, which is
    only used by memcg. It is overly complex trying to achieve high
    flexibility whose benefits seem dubious at best. Going forward,
    new events will simply generate file modified event and the
    existing mechanism is being made specific to memcg. This pull
    request contains prepatory patches for such change.

    - Various fixes and cleanups"

    Fixed up conflict in kernel/cgroup.c as per Tejun.

    * 'for-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (69 commits)
    cgroup: fix cgroup_css() invocation in css_from_id()
    cgroup: make cgroup_write_event_control() use css_from_dir() instead of __d_cgrp()
    cgroup: make cgroup_event hold onto cgroup_subsys_state instead of cgroup
    cgroup: implement CFTYPE_NO_PREFIX
    cgroup: make cgroup_css() take cgroup_subsys * instead and allow NULL subsys
    cgroup: rename cgroup_css_from_dir() to css_from_dir() and update its syntax
    cgroup: fix cgroup_write_event_control()
    cgroup: fix subsystem file accesses on the root cgroup
    cgroup: change cgroup_from_id() to css_from_id()
    cgroup: use css_get() in cgroup_create() to check CSS_ROOT
    cpuset: remove an unncessary forward declaration
    cgroup: RCU protect each cgroup_subsys_state release
    cgroup: move subsys file removal to kill_css()
    cgroup: factor out kill_css()
    cgroup: decouple cgroup_subsys_state destruction from cgroup destruction
    cgroup: replace cgroup->css_kill_cnt with ->nr_css
    cgroup: bounce cgroup_subsys_state ref kill confirmation to a work item
    cgroup: move cgroup->subsys[] assignment to online_css()
    cgroup: reorganize css init / exit paths
    cgroup: add __rcu modifier to cgroup->subsys[]
    ...

    Linus Torvalds
     
  • Pull libata changes from Tejun Heo:
    "Two interesting changes.

    - libata acpi handling has been restructured so that the association
    between ata devices and ACPI handles are less convoluted. This
    change shouldn't change visible behavior.

    - Queued TRIM support, which enables sending TRIM to the device
    without draining in-flight RW commands, is added. Currently only
    enabled for ahci (and likely to stay that way for the foreseeable
    future).

    Other changes are driver-specific updates / fixes"

    * 'for-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    libata: bugfix: Remove __le32 in ata_tf_to_fis()
    libata: acpi: Remove ata_dev_acpi_handle stub in libata.h
    libata: Add support for queued DSM TRIM
    libata: Add support for SEND/RECEIVE FPDMA QUEUED
    libata: Add H2D FIS "auxiliary" port flag
    libata: Populate host-to-device FIS "auxiliary" field
    ata: acpi: rework the ata acpi bind support
    sata, highbank: send extra clock cycles in SGPIO patterns
    sata, highbank: set tx_atten override bits
    devicetree: create a separate binding description for sata_highbank
    drivers/ata/sata_rcar.c: simplify use of devm_ioremap_resource
    sata highbank: enable 64-bit DMA mask when using LPAE
    ata: pata_samsung_cf: add missing __iomem annotation
    ata: pata_arasan: Staticize local symbols
    sata_mv: Remove unneeded CONFIG_HAVE_CLK ifdefs
    ata: use dev_get_platdata()
    sata_mv: Remove unneeded forward declaration
    libata: acpi: remove dead code for ata_acpi_(un)bind
    libata: move 'struct ata_taskfile' and friends from ata.h to libata.h

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "Nothing interesting. All are doc / comment updates"

    * 'for-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: Correct/Drop references to gcwq in Documentation
    workqueue: Fix manage_workers() RETURNS description
    workqueue: Comment correction in file header
    workqueue: mark WQ_NON_REENTRANT deprecated

    Linus Torvalds
     
  • Pull single percpu update from Tejun Heo:
    "Just a single patch to update type verification macro for percpu
    accessors.

    Christoph is trying to replace __get_cpu_var() with this_cpu accessors
    which needs this update. There are still some issues to be resolved
    but eventually the conversion patches are likely to be routed through
    different trees, so I think it'd be convenient to merge this commit
    early"

    * 'for-3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    percpu: Make __verify_pcu_ptr handle per cpu pointers to arrays

    Linus Torvalds
     
  • Pull PCI changes from Bjorn Helgaas:

    PCI device hotplug:
    - Use PCIe native hotplug, not ACPI hotplug, when possible (Neil Horman)
    - Assign resources on per-host bridge basis (Yinghai Lu)

    MPS (Max Payload Size):
    - Allow larger MPS settings below hotplug-capable Root Port (Yijing Wang)
    - Add warnings about unsafe MPS settings (Yijing Wang)
    - Simplify interface and messages (Bjorn Helgaas)

    SR-IOV:
    - Return -ENOSYS on non-SR-IOV devices (Stefan Assmann)
    - Update NumVFs register when disabling SR-IOV (Yijing Wang)

    Virtualization:
    - Add bus and slot reset support (Alex Williamson)
    - Fix ACS (Access Control Services) issues (Alex Williamson)

    Miscellaneous:
    - Simplify PCIe Capability accessors (Bjorn Helgaas)
    - Add pcibios_pm_ops for arch-specific hibernate stuff (Sebastian Ott)
    - Disable decoding during BAR sizing only when necessary (Zoltan Kiss)
    - Delay enabling bridges until they're needed (Yinghai Lu)
    - Split Designware support into Synopsys and Exynos parts (Jingoo Han)
    - Convert class code to use dev_groups (Greg Kroah-Hartman)
    - Cleanup Designware and Exynos I/O access wrappers (Seungwon Jeon)
    - Fix bridge I/O window alignment (Bjorn Helgaas)
    - Add pci_wait_for_pending_transaction() (Casey Leedom)
    - Use devm_ioremap_resource() in Marvell driver (Tushar Behera)

    * tag 'pci-v3.12-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (63 commits)
    PCI/ACPI: Fix _OSC ordering to allow PCIe hotplug use when available
    PCI: exynos: Add I/O access wrappers
    PCI: designware: Drop "addr" arg from dw_pcie_readl_rc()/dw_pcie_writel_rc()
    PCI: Remove pcie_cap_has_devctl()
    PCI: Support PCIe Capability Slot registers only for ports with slots
    PCI: Remove PCIe Capability version checks
    PCI: Allow PCIe Capability link-related register access for switches
    PCI: Add offsets of PCIe capability registers
    PCI: Tidy bitmasks and spacing of PCIe capability definitions
    PCI: Remove obsolete comment reference to pci_pcie_cap2()
    PCI: Clarify PCI_EXP_TYPE_PCI_BRIDGE comment
    PCI: Rename PCIe capability definitions to follow convention
    PCI: Warn if unsafe MPS settings detected
    PCI: Fix MPS peer-to-peer DMA comment syntax
    PCI: Disable decoding for BAR sizing only when it was actually enabled
    PCI: Add comment about needing pci_msi_off() even when CONFIG_PCI_MSI=n
    PCI: Add pcibios_pm_ops for optional arch-specific hibernate functionality
    PCI: Don't restrict MPS for slots below Root Ports
    PCI: Simplify MPS test for Downstream Port
    PCI: Remove unnecessary check for pcie_get_mps() failure
    ...

    Linus Torvalds
     
  • Pull ACPI and power management updates from Rafael Wysocki:

    1) ACPI-based PCI hotplug (ACPIPHP) subsystem rework and introduction
    of Intel Thunderbolt support on systems that use ACPI for signalling
    Thunderbolt hotplug events. This also should make ACPIPHP work in
    some cases in which it was known to have problems. From
    Rafael J Wysocki, Mika Westerberg and Kirill A Shutemov.

    2) ACPI core code cleanups and dock station support cleanups from
    Jiang Liu and Rafael J Wysocki.

    3) Fixes for locking problems related to ACPI device hotplug from
    Rafael J Wysocki.

    4) ACPICA update to version 20130725 includig fixes, cleanups, support
    for more than 256 GPEs per GPE block and a change to make the ACPI
    PM Timer optional (we've seen systems without the PM Timer in the
    field already). One of the fixes, related to the DeRefOf operator,
    is necessary to prevent some Windows 8 oriented AML from causing
    problems to happen. From Bob Moore, Lv Zheng, and Jung-uk Kim.

    5) Removal of the old and long deprecated /proc/acpi/event interface
    and related driver changes from Thomas Renninger.

    6) ACPI and Xen changes to make the reduced hardware sleep work with
    the latter from Ben Guthro.

    7) ACPI video driver cleanups and a blacklist of systems that should
    not tell the BIOS that they are compatible with Windows 8 (or ACPI
    backlight and possibly other things will not work on them). From
    Felipe Contreras.

    8) Assorted ACPI fixes and cleanups from Aaron Lu, Hanjun Guo,
    Kuppuswamy Sathyanarayanan, Lan Tianyu, Sachin Kamat, Tang Chen,
    Toshi Kani, and Wei Yongjun.

    9) cpufreq ondemand governor target frequency selection change to
    reduce oscillations between min and max frequencies (essentially,
    it causes the governor to choose target frequencies proportional
    to load) from Stratos Karafotis.

    10) cpufreq fixes allowing sysfs attributes file permissions to be
    preserved over suspend/resume cycles Srivatsa S Bhat.

    11) Removal of Device Tree parsing for CPU device nodes from multiple
    cpufreq drivers that required some changes related to
    of_get_cpu_node() to be made in a few architectures and in the
    driver core. From Sudeep KarkadaNagesha.

    12) cpufreq core fixes and cleanups related to mutual exclusion and
    driver module references from Viresh Kumar, Lukasz Majewski and
    Rafael J Wysocki.

    13) Assorted cpufreq fixes and cleanups from Amit Daniel Kachhap,
    Bartlomiej Zolnierkiewicz, Hanjun Guo, Jingoo Han, Joseph Lo,
    Julia Lawall, Li Zhong, Mark Brown, Sascha Hauer, Stephen Boyd,
    Stratos Karafotis, and Viresh Kumar.

    14) Fixes to prevent race conditions in coupled cpuidle from happening
    from Colin Cross.

    15) cpuidle core fixes and cleanups from Daniel Lezcano and
    Tuukka Tikkanen.

    16) Assorted cpuidle fixes and cleanups from Daniel Lezcano,
    Geert Uytterhoeven, Jingoo Han, Julia Lawall, Linus Walleij,
    and Sahara.

    17) System sleep tracing changes from Todd E Brandt and Shuah Khan.

    18) PNP subsystem conversion to using struct dev_pm_ops for power
    management from Shuah Khan.

    * tag 'pm+acpi-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (217 commits)
    cpufreq: Don't use smp_processor_id() in preemptible context
    cpuidle: coupled: fix race condition between pokes and safe state
    cpuidle: coupled: abort idle if pokes are pending
    cpuidle: coupled: disable interrupts after entering safe state
    ACPI / hotplug: Remove containers synchronously
    driver core / ACPI: Avoid device hot remove locking issues
    cpufreq: governor: Fix typos in comments
    cpufreq: governors: Remove duplicate check of target freq in supported range
    cpufreq: Fix timer/workqueue corruption due to double queueing
    ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
    ACPI / thermal: Add check of "_TZD" availability and evaluating result
    cpufreq: imx6q: Fix clock enable balance
    ACPI: blacklist win8 OSI for buggy laptops
    cpufreq: tegra: fix the wrong clock name
    cpuidle: Change struct menu_device field types
    cpuidle: Add a comment warning about possible overflow
    cpuidle: Fix variable domains in get_typical_interval()
    cpuidle: Fix menu_device->intervals type
    cpuidle: CodingStyle: Break up multiple assignments on single line
    cpuidle: Check called function parameter in get_typical_interval()
    ...

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "The first patch is to address a long standing issue where INQUIRY
    vendor + model response data was not correctly padded with ASCII
    spaces, causing MSFT and Falconstor multipath stacks to not function
    with our LUNs.

    The second -> forth patches are additional iscsi-target regression
    fixes for the post >= v3.10 iser-target changes. The second and third
    are failure cases that have appeared during further testing, and the
    forth is only reproducible with malformed NOP packets.

    The fifth patch is a v3.11 specific regression caused by a recent
    optimization that showed up during WRITE I/O failure testing.

    I'll be sending Patch #1 and Patch #5 to Greg-KH separately for
    stable"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Fix se_cmd->state_list leak regression during WRITE failure
    iscsi-target: Fix potential NULL pointer in solicited NOPOUT reject
    iscsi-target: Fix iscsit_transport reference leak during NP thread reset
    iscsi-target: Fix ImmediateData=Yes failure regression in >= v3.10
    target: Fix trailing ASCII space usage in INQUIRY vendor+model

    Linus Torvalds
     
  • Pull first round of SCSI updates from James Bottomley:
    "This patch set is a set of driver updates (ufs, zfcp, lpfc, mpt2/3sas,
    qla4xxx, qla2xxx [adding support for ISP8044 + other things]).

    We also have a new driver: esas2r which has a number of static checker
    problems, but which I expect to resolve over the -rc course of 3.12
    under the new driver exception.

    We also have the error return that were discussed at LSF"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (118 commits)
    [SCSI] sg: push file descriptor list locking down to per-device locking
    [SCSI] sg: checking sdp->detached isn't protected when open
    [SCSI] sg: no need sg_open_exclusive_lock
    [SCSI] sg: use rwsem to solve race during exclusive open
    [SCSI] scsi_debug: fix logical block provisioning support when unmap_alignment != 0
    [SCSI] scsi_debug: fix endianness bug in sdebug_build_parts()
    [SCSI] qla2xxx: Update the driver version to 8.06.00.08-k.
    [SCSI] qla2xxx: print MAC via %pMR.
    [SCSI] qla2xxx: Correction to message ids.
    [SCSI] qla2xxx: Correctly print out/in mailbox registers.
    [SCSI] qla2xxx: Add a new interface to update versions.
    [SCSI] qla2xxx: Move queue depth ramp down message to i/o debug level.
    [SCSI] qla2xxx: Select link initialization option bits from current operating mode.
    [SCSI] qla2xxx: Add loopback IDC-TIME-EXTEND aen handling support.
    [SCSI] qla2xxx: Set default critical temperature value in cases when ISPFX00 firmware doesn't provide it
    [SCSI] qla2xxx: QLAFX00 make over temperature AEN handling informational, add log for normal temperature AEN
    [SCSI] qla2xxx: Correct Interrupt Register offset for ISPFX00
    [SCSI] qla2xxx: Remove handling of Shutdown Requested AEN from qlafx00_process_aen().
    [SCSI] qla2xxx: Send all AENs for ISPFx00 to above layers.
    [SCSI] qla2xxx: Add changes in initialization for ISPFX00 cards with BIOS
    ...

    Linus Torvalds
     
  • While we are likley to succeed and break out of this loop, it isn't
    guaranteed. We should be power and thread friendly if we do have to
    go around for a second (or third, or more) attempt.

    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Luck, Tony
     
  • Pull tty/serial driver patches from Greg KH:
    "Here's the big tty/serial driver pull request for 3.12-rc1.

    Lots of n_tty reworks to resolve some very long-standing issues,
    removing the 3-4 different locks that were taken for every character.
    This code has been beaten on for a long time in linux-next with no
    reported regressions.

    Other than that, a range of serial and tty driver updates and
    revisions. Full details in the shortlog"

    * tag 'tty-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (226 commits)
    hvc_xen: Remove unnecessary __GFP_ZERO from kzalloc
    serial: imx: initialize the local variable
    tty: ar933x_uart: add device tree support and binding documentation
    tty: ar933x_uart: allow to build the driver as a module
    ARM: dts: msm: Update uartdm compatible strings
    devicetree: serial: Document msm_serial bindings
    serial: unify serial bindings into a single dir
    serial: fsl-imx-uart: Cleanup duplicate device tree binding
    tty: ar933x_uart: use config_enabled() macro to clean up ifdefs
    tty: ar933x_uart: remove superfluous assignment of ar933x_uart_driver.nr
    tty: ar933x_uart: use the clk API to get the uart clock
    tty: serial: cpm_uart: Adding proper request of GPIO used by cpm_uart driver
    serial: sirf: fix the amount of serial ports
    serial: sirf: define macro for some magic numbers of USP
    serial: icom: move array overflow checks earlier
    TTY: amiserial, remove unnecessary platform_set_drvdata()
    serial: st-asc: remove unnecessary platform_set_drvdata()
    msm_serial: Send more than 1 character on the console w/ UARTDM
    msm_serial: Add support for non-GSBI UARTDM devices
    msm_serial: Switch clock consumer strings and simplify code
    ...

    Linus Torvalds
     
  • Pull staging tree merge from Greg KH:
    "Here's the bit staging tree pull request for 3.12-rc1.

    Lots of staging driver updates, and fixes. Lustre is finally enabled
    in the build, and lots of cleanup started happening in it. There's a
    new wireless driver in here, and 2 new TTY drivers, which cause the
    overall lines added/removed to be quite large on the "added" side.

    The IIO driver updates are also coming through here, as they are tied
    to the staging iio drivers"

    * tag 'staging-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (942 commits)
    staging: dwc2: make dwc2_core_params documentation more complete
    staging: dwc2: validate the value for phy_utmi_width
    staging: dwc2: interpret all hwcfg and related register at init time
    staging: dwc2: properly mask the GRXFSIZ register
    staging: dwc2: remove redundant register reads
    staging: dwc2: re-use hptxfsiz variable
    staging: dwc2: simplify debug output in dwc_hc_init
    staging: dwc2: add missing shift
    staging: dwc2: simplify register shift expressions
    staging: dwc2: only read the snpsid register once
    staging: dwc2: unshift non-bool register value constants
    staging: dwc2: fix off-by-one in check for max_packet_count parameter
    staging: dwc2: remove specific fifo size constants
    Staging:BCM:DDRInit.c:Renaming __FUNCTION__
    staging: bcm: remove Version.h file.
    staging: rtl8188eu: off by one in rtw_set_802_11_add_wep()
    staging: r8188eu: copying one byte too much
    staging: rtl8188eu: || vs && typo
    staging: r8188eu: off by one bugs
    staging: crystalhd: Resolve sparse 'different base types' warnings.
    ...

    Linus Torvalds
     
  • Pull driver core patches from Greg KH:
    "Here's the big driver core pull request for 3.12-rc1.

    Lots of tiny changes here fixing up the way sysfs attributes are
    created, to try to make drivers simpler, and fix a whole class race
    conditions with creations of device attributes after the device was
    announced to userspace.

    All the various pieces are acked by the different subsystem
    maintainers"

    * tag 'driver-core-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (119 commits)
    firmware loader: fix pending_fw_head list corruption
    drivers/base/memory.c: introduce help macro to_memory_block
    dynamic debug: line queries failing due to uninitialized local variable
    sysfs: sysfs_create_groups returns a value.
    debugfs: provide debugfs_create_x64() when disabled
    rbd: convert bus code to use bus_groups
    firmware: dcdbas: use binary attribute groups
    sysfs: add sysfs_create/remove_groups for when SYSFS is not enabled
    driver core: add #include to core files.
    HID: convert bus code to use dev_groups
    Input: serio: convert bus code to use drv_groups
    Input: gameport: convert bus code to use drv_groups
    driver core: firmware: use __ATTR_RW()
    driver core: core: use DEVICE_ATTR_RO
    driver core: bus: use DRIVER_ATTR_WO()
    driver core: create write-only attribute macros for devices and drivers
    sysfs: create __ATTR_WO()
    driver-core: platform: convert bus code to use dev_groups
    workqueue: convert bus code to use dev_groups
    MEI: convert bus code to use dev_groups
    ...

    Linus Torvalds
     
  • Pull char/misc patches from Greg KH:
    "Here is the big char/misc driver pull request for 3.12-rc1

    Lots of driver updates all over the char/misc tree, full details in
    the shortlog"

    * tag 'char-misc-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (62 commits)
    drivers: uio: Kconfig: add MMU dependancy for UIO
    drivers: uio: Add driver for Humusoft MF624 DAQ PCI card
    drivers: uio_pdrv_genirq: use dev_get_platdata()
    drivers: uio_pruss: use dev_get_platdata()
    drivers: uio_dmem_genirq: use dev_get_platdata()
    drivers: parport: Kconfig: exclude h8300 for PARPORT_PC
    drivers: misc: ti-st: fix potential race if st_kim_start fails
    Drivers: hv: vmbus: Do not attempt to negoatiate a new version prematurely
    misc: vmw_balloon: Remove braces to fix build for clang.
    Drivers: hv: vmbus: Fix a bug in the handling of channel offers
    vme: vme_ca91cx42.c: fix to pass correct device identity to free_irq()
    VMCI: Add support for virtual IOMMU
    VMCI: Remove non-blocking/pinned queuepair support
    uio: uio_pruss: remove unnecessary platform_set_drvdata()
    parport: amiga: remove unnecessary platform_set_drvdata()
    vme: vme_vmivme7805.c: add missing __iomem annotation
    vme: vme_ca91cx42.c: add missing __iomem annotation
    vme: vme_tsi148.c: add missing __iomem annotation
    drivers/misc/hpilo: Correct panic when an AUX iLO is detected
    uio: drop unused vma_count member in uio_device struct
    ...

    Linus Torvalds
     
  • Pull USB patches from Greg KH:
    "Here's the big USB driver pull request for 3.12-rc1

    Lots of USB driver fixes and updates. Nothing major, just the normal
    xhci, gadget, and other driver changes. Full details in the shortlog"

    * tag 'usb-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (352 commits)
    usbcore: fix incorrect type in assignment in descriptors_changed()
    usbcore: compare and release one bos descriptor in usb_reset_and_verify_device()
    ehci: remove debugging statement with ehci statistics in ehci_stop()
    ehci: remove duplicate debug_async_open() prototype in ehci-dbg.c
    ehci: enable debugging code when CONFIG_DYNAMIC_DEBUG is set
    ehci: remove ehci_vdbg() verbose debugging statements
    Documentation sysfs-bus-usb: Document which files are used by libusb
    Documentation sysfs-bus-usb: Document the speed file used by libusb
    Documentation sysfs-bus-usb: Move files with known users to stable
    USB: fix build error when CONFIG_PM_SLEEP isn't enabled
    usb: r8a66597-hcd: use platform_{get,set}_drvdata()
    usb: phy-tegra-usb: use platform_{get,set}_drvdata()
    usb: acm gadget: Null termintate strings table
    dma: cppi41: off by one in desc_to_chan()
    xhci: Fix warning introduced by disabling runtime PM.
    dev-core: fix build break when DEBUG is enabled
    USB: OHCI: Allow runtime PM without system sleep
    usb: ohci-at91: remove unnecessary dev_set_drvdata()
    usb: renesas_usbhs: use platform_{get,set}_drvdata()
    usb: fotg210-udc: use platform_{get,set}_drvdata()
    ...

    Linus Torvalds
     
  • Pull first batch of s390 updates from Martin Schwidefsky:
    "The most interesting change is that Martin converted s390 to generic
    hardirqs. Which means that all current architectures have been
    converted and that CONFIG_GENERIC_HARDIRQS can be removed. Martin
    prepared a patch for that already (see genirq branch), but the best
    time to merge that is probably at the end of the merge window / begin
    of -rc1.

    Another patch converts s390 to software referenced bits instead of
    relying on the reference bit in the storage key. Therefore s390
    doesn't use storage keys anymore, except for kvm.

    Besides that we have improvements, cleanups and fixes in PCI, DASD and
    all over the place."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (32 commits)
    s390/pci: use virtual memory for iommu bitmap
    s390/cio: fix unlocked access of global bitmap
    s390/pci: update function handle after resume from hibernate
    s390/pci: try harder to modify a function
    s390/pci: split lpf
    s390/hibernate: add early resume function
    s390/pci: add recover sysfs knob
    s390/pci: use claim_resource
    s390/pci/hotplug: convert to be builtin only
    s390/mm: implement software referenced bits
    s390/dasd: fix statistics for recovered requests
    s390/tx: allow program interruption filtering in user space
    s390/pgtable: fix mprotect for single-threaded KVM guests
    s390/time: return with irqs disabled from psw_idle
    s390/kprobes: add support for compare and branch instructions
    s390/switch_to: fix save_access_regs() / restore_access_regs()
    s390/bitops: fix inline assembly constraints
    s390/dasd: enable raw_track_access reads without direct I/O
    s390/mm: introduce ptep_flush_lazy helper
    s390/time: clock comparator revalidation
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:
    "Summary:
    - Kill harmless warning messages when running a multi-platform kernel
    on Atari
    - Correct virt/phys mixups that didn't actually hurt due to identity
    mappings"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/atari: ARAnyM - Always use physical addresses in NatFeat calls
    m68k: Ignore disabled HSYNC interrupt on Atari for irqs_disabled()

    Linus Torvalds
     
  • Pull hwmon updates from Guenter Roeck:
    - new driver for HTU21D (humidity sensor)
    - add support for Fam16h (Kabini) to k10temp
    - add support for NCT6102D/6106D and NCT6791D to nct6775 driver
    - add support for ADS1115 to ads1015 driver
    - add support for hibernate to w83627ehf and nct6775 drivers
    - some minor cleanups

    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (htu21) Add Measurement Specialties HTU21D support
    hwmon: Change my email address.
    hwmon: (k10temp) Add support for Fam16h (Kabini)
    hwmon: (adt7462) ADT7462_REG_VOLT_MAX() should return 0
    hwmon: (ads1015) Add support for ADS1115
    hwmon: (w83627ehf) Add support for hibernate
    hwmon: (nct6775) Add support for hibernate
    hwmon: use dev_get_platdata()
    hwmon: (nct6775) Fix size of data->temp array
    hwmon: (nct6775) Avoid using device platform data outside probe function
    hwmon: (nct6775) Add support for NCT6791D
    hwmon: (nct6775) Add support for beep attributes
    hwmon: (nct6775) Add support for critical low/high temperature limits on NCT6106
    hwmon: (nct6775) Add support for NCT6102D/6106D
    hwmon: (nct6775) Support two SuperIO chips in the same system
    hwmon: (nct6775) Allocate attributes dynamically from templates
    hwmon: (coretemp) Atom CPUs don't support TjMax; no warning needed

    Linus Torvalds
     
  • The check if the queue is full and adding current to the wait queue of
    pending msgsnd() operations (ss_add()) must be atomic.

    Otherwise:
    - the thread that performs msgsnd() finds a full queue and decides to
    sleep.
    - the thread that performs msgrcv() first reads all messages from the
    queue and then sleeps, because the queue is empty.
    - the msgrcv() calls do not perform any wakeups, because the msgsnd()
    task has not yet called ss_add().
    - then the msgsnd()-thread first calls ss_add() and then sleeps.

    Net result: msgsnd() and msgrcv() both sleep forever.

    Observed with msgctl08 from ltp with a preemptible kernel.

    Fix: Call ipc_lock_object() before performing the check.

    The patch also moves security_msg_queue_msgsnd() under ipc_lock_object:
    - msgctl(IPC_SET) explicitely mentions that it tries to expunge any
    pending operations that are not allowed anymore with the new
    permissions. If security_msg_queue_msgsnd() is called without locks,
    then there might be races.
    - it makes the patch much simpler.

    Reported-and-tested-by: Vineet Gupta
    Acked-by: Rik van Riel
    Cc: stable@vger.kernel.org # for 3.11
    Signed-off-by: Manfred Spraul
    Signed-off-by: Linus Torvalds

    Manfred Spraul
     
  • Pull regulator updates from Mark Brown:
    "Not much exciting going on with the regulator API this time around,
    lots of driver fixes and enhancements - the main thing is the addition
    of a new API to help make the stubbing code do the right thing for
    missing regulator mappings.

    Highlights:

    - A new regulator_get_optional() API call for regulators that can be
    absent in normal operation. This currently does nothing but will
    be used to improve the stubbing code for unspecified regulators,
    helping avoid some of the issues we've seen with adding new
    regulator support.
    - Helpers for devices with multiple linear ranges of voltages in the
    same regulator.
    - Moved the helpers into a separate file since core.c is getting
    rather large.
    - New drivers for Dialog DA9210 and DA9063, Freescale pfuze100 and
    Marvell 88pm800"

    * tag 'regulator-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (70 commits)
    regulator: da9063: Statize da9063_ldo_lim_event
    regulator: lp872x: Make REGULATOR_LP872X depend on I2C rather than I2C=y
    regulator: tps65217: Convert to use linear ranges
    regulator: da9063: Use IS_ERR to check return value of regulator_register()
    regulator: da9063: Optimize da9063_set_current_limit implementation
    regulator: build: Allow most regulators to be built as modules
    regulator: Add devm_regulator_get_exclusive()
    regulator: da9063: Add Dialog DA9063 voltage regulators support.
    regulator: ti-abb: simplify platform_get_resource_byname/devm_ioremap_resource
    hwmon: (sht15) Use devm_regulator_get_optional()
    regulator: core: Use bool for exclusivitity flag
    regulator: 88pm800: forever loop in pm800_regulator_probe()
    cpufreq: cpufreq-cpu0: Use devm_regulator_get_optional()
    regulator: da9210: Remove redundant MODULE_ALIAS
    regulator: 88pm800: Fix checking whether num_regulator is valid
    regulator: s2mps11: Fix setting ramp_delay
    regulator: s2mps11: Fix wrong arguments for regmap_update_bits() call
    regulator: palmas: Update the DT binding doc for smps10 out1 and out2
    regulator: palmas: model SMPS10 as two regulators
    regulator: core: Move list_voltage_{linear,linear_range,table} to helpers.c
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "Business as usual for SPI - some new drivers, lots of fixes and
    updates to existing drivers plus some new framework features. Notable
    changes are:

    - Support for dual and quad data lines, commonly used by flash chips
    to improve performance, from Wang Yuhang.
    - Factored out a common pattern for runtime PM implementation into
    the core saving a bunch of code.
    - A particularly nice set of updates to the ep93xx driver from
    H Hartley Sweeten, modernising it and reducing the code size a lot.
    - New drivers for Blackfin v3, EFM32, Freescale DSPI and TI QSPI"

    * tag 'spi-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (133 commits)
    spi/qspi: fix missing unlock on error in ti_qspi_start_transfer_one()
    spi: quad: fix the name of DT property
    spi: core: Fix spi_register_master error handling
    spi: efm32: Fix build error
    spi: altera: Use DIV_ROUND_UP to calculate hw->bytes_per_word
    spi: rspi: Add spi_master_get() call to prevent use after free
    spi: quad: Make DT properties optional
    spi: quad: Fix missing return
    spi: Use dev_get_drvdata at appropriate places
    spi: use dev_get_platdata()
    spi: nuc900: Fix mode_bits setting
    spi: simplify devm_request_mem_region/devm_ioremap
    spi: altera: Simplify altera_spi_txrx implementation for noirq case
    spi: spi-rspi: fix inconsistent spin_lock_irqsave
    spi/qspi: Add compatible string for am4372.
    spi/qspi: Fix device table entry
    spi/sirf: fix the misunderstanding about len of spi_transfer
    spi/qspi: Add dual/quad spi read support
    spi: sirf: fix error return code in spi_sirfsoc_probe()
    spi: bcm2835: Add spi_master_get() call to prevent use after free
    ...

    Linus Torvalds
     
  • Pull regmap updates from Mark Brown:
    "A quiet release for regmap, some cleanups, fixes and:

    - Improved node coalescing for rbtree, reducing memory usage and
    improving performance during syncs.
    - Support for registering multiple register patches.
    - A quirk for handling interrupts that need to be clear when masked
    in regmap-irq"

    * tag 'regmap-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: rbtree: Make cache_present bitmap per node
    regmap: rbtree: Reduce number of nodes, take 2
    regmap: rbtree: Simplify adjacent node look-up
    regmap: debugfs: Fix continued read from registers file
    regcache-rbtree: Fix reg_stride != 1
    regmap: Allow multiple patches to be registered
    regmap: regcache: allow read-only regs to be cached
    regmap: fix regcache_reg_present() for empty cache
    regmap: core: allow a virtual range to cover its own data window
    regmap: irq: document mask/wake_invert flags
    regmap: irq: make flags bool and put them in a bitfield
    regmap: irq: Allow to acknowledge masked interrupts during initialization
    regmap: Provide __acquires/__releases annotations

    Linus Torvalds
     

03 Sep, 2013

16 commits

  • Merge lockref infrastructure code by me and Waiman Long.

    I already merged some of the preparatory patches that didn't actually do
    any semantic changes earlier, but this merges the actual _reason_ for
    those preparatory patches.

    The "lockref" structure is a combination "spinlock and reference count"
    that allows optimized reference count accesses. In particular, it
    guarantees that the reference count will be updated AS IF the spinlock
    was held, but using atomic accesses that cover both the reference count
    and the spinlock words, we can often do the update without actually
    having to take the lock.

    This allows us to avoid the nastiest cases of spinlock contention on
    large machines under heavy pathname lookup loads. When updating the
    dentry reference counts on a large system, we'll still end up with the
    cache line bouncing around, but that's much less noticeable than
    actually having to spin waiting for the lock.

    * lockref:
    lockref: implement lockless reference count updates using cmpxchg()
    lockref: uninline lockref helper functions
    vfs: reimplement d_rcu_to_refcount() using lockref_get_or_lock()
    vfs: use lockref_get_not_zero() for optimistic lockless dget_parent()
    lockref: add 'lockref_get_or_lock() helper

    Linus Torvalds
     
  • The endianness attribute on the 'aux' local variable is wrong, and can
    lead to wrong endianness on big-endian machines,

    Signed-off-by: Marc Carino
    Signed-off-by: Tejun Heo

    Marc Carino
     
  • Push file descriptor list locking down to per-device locking. Let sg_index_lock
    only protect device lookup.
    sdp->detached is also set and checked with this lock held.

    Signed-off-by: Vaughan Cao
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Vaughan Cao
     
  • @detached is set under the protection of sg_index_lock. Without getting the
    lock, new sfp will be added during sg removal and there is no chance for it
    to be picked out. So check with sg_index_lock held in sg_add_sfp().

    Signed-off-by: Vaughan Cao
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Vaughan Cao
     
  • Open exclusive check is protected by o_sem, no need sg_open_exclusive_lock.
    @exclude is used to record which type of rwsem we are holding.

    Signed-off-by: Vaughan Cao
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Vaughan Cao
     
  • A race condition may happen if two threads are both trying to open the same sg
    with O_EXCL simultaneously. It's possible that they both find fsds list is
    empty and get_exclude(sdp) returns 0, then they both call set_exclude() and
    break out from wait_event_interruptible and resume open.

    Now use rwsem to protect this process. Exclusive open gets write lock and
    others get read lock. The lock will be held until file descriptor is closed.
    This also leads 'exclude' only a status rather than a check mark.

    Signed-off-by: Vaughan Cao
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Vaughan Cao
     
  • Commit b90ebc3d5c41c9164ae04efd2e4f8204c2a186f1 ("[SCSI] scsi_debug:
    fix logical block provisioning support") fixed several issues with
    logical block provisioning support, but it still doesn't properly fix
    the cases when unmap_alignment > 0.

    For example, load scsi_debug module with the following module parameters
    and make all blocks mapped by filling the storage with zero.

    # modprobe scsi_debug lbpu=1 unmap_alignment=1 unmap_granularity=4
    # dd if=/dev/zero of=$DEV

    Then, try to unmap the first unmappable blocks at lba=1, but GET LBA STATUS
    unexpectedly reports that the last UNMAP has done nothing.

    # sg_unmap --lba=1 --num=4 $DEV
    # sg_get_lba_status --lba=1 $DEV
    descriptor LBA: 0x0000000000000001 blocks: 16383 mapped

    The problem is in map_index_to_lba(), which should return the first
    LBA which is corresponding to a given index of provisioning map
    (map_storep).

    Signed-off-by: Akinobu Mita
    Acked-by: "Martin K. Petersen"
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Akinobu Mita
     
  • With module parameter num_parts > 0, partition table is built on the
    ramdisk storage when loading the driver. Unfortunately, there is an
    endianness bug in sdebug_build_parts(). So the partition table is not
    correctly initialized on big-endian systems.

    Signed-off-by: Akinobu Mita
    Tested-by: Martin Peschke
    Acked-by: Douglas Gilbert
    Signed-off-by: James Bottomley

    Akinobu Mita
     
  • Signed-off-by: Giridhar Malavali
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Saurav Kashyap
     
  • Signed-off-by: Andy Shevchenko
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Andy Shevchenko
     
  • Signed-off-by: Giridhar Malavali
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Saurav Kashyap
     
  • At mailbox/buffer debug level, print the correct values of the
    outgoing and incoming mailbox registers.

    Signed-off-by: Joe Carnuccio
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Joe Carnuccio
     
  • On any Adapter when we flash through FC/FCoE without card reset option it still
    shows the Running FW version in Flashed FW version. This new interface will be
    used by API to instruct the driver to update its cache versions.

    Signed-off-by: Sawan Chandak
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Sawan Chandak
     
  • Unless there is a need to observe them, the queue depth ramp up/down messages
    are a nuisance and may cause the system to become unresponsive so move it a
    non-default logging level.

    Signed-off-by: Chad Dupuis
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Chad Dupuis
     
  • Signed-off-by: Joe Carnuccio
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Joe Carnuccio
     
  • Earlier IDC-TIME-EXTEND aen was a nop and ignored by driver.
    We now have to handle the aen so that other protocol drivers can use time
    extension during some loopback operations.

    Signed-off-by: Santosh Vernekar
    Signed-off-by: Saurav Kashyap
    Signed-off-by: James Bottomley

    Santosh Vernekar