15 Sep, 2016

7 commits

  • No need now that we don't have to reverse engineer the irq affinity.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Keith Busch
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • Use the new helper to automatically select the right interrupt type, as
    well as to use the automatic interupt affinity assignment.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Keith Busch
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • All drivers use the default, so provide an inline version of it. If we
    ever need other queue mapping we can add an optional method back,
    although supporting will also require major changes to the queue setup
    code.

    This provides better code generation, and better debugability as well.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Keith Busch
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • …p/tip into for-4.9/msi-irq

    Jens Axboe
     
  • Add a helper to get the affinity mask for a given PCI irq vector. For MSI or
    MSI-X vectors these are stored by the IRQ core, while for legacy interrupts
    we will always return cpu_possible_map.

    [hch: updated to follow the style of pci_irq_vector()]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Christoph Hellwig
    Cc: axboe@fb.com
    Cc: keith.busch@intel.com
    Cc: agordeev@redhat.com
    Cc: linux-block@vger.kernel.org
    Link: http://lkml.kernel.org/r/1473862739-15032-6-git-send-email-hch@lst.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • Switch MSI over to the new spreading code. If a pci device contains a valid
    pointer to a cpumask, then this mask is used for spreading otherwise the
    online cpu mask is used. This allows a driver to restrict the spread to a
    subset of CPUs, e.g. cpus on a particular node.

    Signed-off-by: Thomas Gleixner
    Cc: Christoph Hellwig
    Cc: axboe@fb.com
    Cc: keith.busch@intel.com
    Cc: agordeev@redhat.com
    Cc: linux-block@vger.kernel.org
    Link: http://lkml.kernel.org/r/1473862739-15032-4-git-send-email-hch@lst.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • For irq spreading want to store affinity masks in the msi_entry. Add the
    infrastructure for it.

    We allocate an array of cpumasks with an array size of the number of used
    vectors in the entry, so we can hand in the information per linux interrupt
    later.

    As we hand in the number of used vectors, we assign them right
    away. Convert all the call sites.

    Signed-off-by: Thomas Gleixner
    Cc: axboe@fb.com
    Cc: keith.busch@intel.com
    Cc: agordeev@redhat.com
    Cc: linux-block@vger.kernel.org
    Cc: Christoph Hellwig
    Link: http://lkml.kernel.org/r/1473862739-15032-2-git-send-email-hch@lst.de

    Thomas Gleixner
     

14 Sep, 2016

1 commit

  • Introduce the bio_flags() macro. Ensure that the second argument of
    bio_set_op_attrs() only contains flags and no operation. This patch
    does not change any functionality.

    Signed-off-by: Bart Van Assche
    Cc: Mike Christie
    Cc: Chris Mason (maintainer:BTRFS FILE SYSTEM)
    Cc: Josef Bacik (maintainer:BTRFS FILE SYSTEM)
    Cc: Mike Snitzer
    Cc: Hannes Reinecke
    Cc: Damien Le Moal
    Reviewed-by: Johannes Thumshirn
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     

12 Sep, 2016

3 commits

  • Commit aa71987472a9 ("nvme: fabrics drivers don't need the nvme-pci
    driver") removed the dependency on BLK_DEV_NVME, but the cdoe does
    depend on the block layer (which used to be an implicit dependency
    through BLK_DEV_NVME).

    Otherwise you get various errors from the kbuild test robot random
    config testing when that happens to hit a configuration with BLOCK
    device support disabled.

    Cc: Christoph Hellwig
    Cc: Jay Freyensee
    Cc: Sagi Grimberg
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull IIO fixes from Greg KH:
    "Here are a few small IIO fixes for 4.8-rc6.

    Nothing major, full details are in the shortlog, all of these have
    been in linux-next with no reported issues"

    * tag 'staging-4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    iio:core: fix IIO_VAL_FRACTIONAL sign handling
    iio: ensure ret is initialized to zero before entering do loop
    iio: accel: kxsd9: Fix scaling bug
    iio: accel: bmc150: reset chip at init time
    iio: fix pressure data output unit in hid-sensor-attributes
    tools:iio:iio_generic_buffer: fix trigger-less mode

    Linus Torvalds
     
  • Pull USB fixes from Greg KH:
    "Here are some small USB gadget, phy, and xhci fixes for 4.8-rc6.

    All of these resolve minor issues that have been reported, and all
    have been in linux-next with no reported issues"

    * tag 'usb-4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: chipidea: udc: fix NULL ptr dereference in isr_setup_status_phase
    xhci: fix null pointer dereference in stop command timeout function
    usb: dwc3: pci: fix build warning on !PM_SLEEP
    usb: gadget: prevent potenial null pointer dereference on skb->len
    usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition
    usb: phy: phy-generic: Check clk_prepare_enable() error
    usb: gadget: udc: renesas-usb3: clear VBOUT bit in DRD_CON
    Revert "usb: dwc3: gadget: always decrement by 1"

    Linus Torvalds
     

11 Sep, 2016

2 commits

  • Pull libnvdimm fixes from Dan Williams:
    "nvdimm fixes for v4.8, two of them are tagged for -stable:

    - Fix devm_memremap_pages() to use track_pfn_insert(). Otherwise,
    DAX pmd mappings end up with an uncached pgprot, and unusable
    performance for the device-dax interface. The device-dax interface
    appeared in 4.7 so this is tagged for -stable.

    - Fix a couple VM_BUG_ON() checks in the show_smaps() path to
    understand DAX pmd entries. This fix is tagged for -stable.

    - Fix a mis-merge of the nfit machine-check handler to flip the
    polarity of an if() to match the final version of the patch that
    Vishal sent for 4.8-rc1. Without this the nfit machine check
    handler never detects / inserts new 'badblocks' entries which
    applications use to identify lost portions of files.

    - For test purposes, fix the nvdimm_clear_poison() path to operate on
    legacy / simulated nvdimm memory ranges. Without this fix a test
    can set badblocks, but never clear them on these ranges.

    - Fix the range checking done by dax_dev_pmd_fault(). This is not
    tagged for -stable since this problem is mitigated by specifying
    aligned resources at device-dax setup time.

    These patches have appeared in a next release over the past week. The
    recent rebase you can see in the timestamps was to drop an invalid fix
    as identified by the updated device-dax unit tests [1]. The -mm
    touches have an ack from Andrew"

    [1]: "[ndctl PATCH 0/3] device-dax test for recent kernel bugs"
    https://lists.01.org/pipermail/linux-nvdimm/2016-September/006855.html

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    libnvdimm: allow legacy (e820) pmem region to clear bad blocks
    nfit, mce: Fix SPA matching logic in MCE handler
    mm: fix cache mode of dax pmd mappings
    mm: fix show_smap() for zone_device-pmd ranges
    dax: fix mapping size check

    Linus Torvalds
     
  • Pull i2c fixes from Wolfram Sang:
    "Mostly driver bugfixes, but also a few cleanups which are nice to have
    out of the way"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: rk3x: Restore clock settings at resume time
    i2c: Spelling s/acknowedge/acknowledge/
    i2c: designware: save the preset value of DW_IC_SDA_HOLD
    Documentation: i2c: slave-interface: add note for driver development
    i2c: mux: demux-pinctrl: run properly with multiple instances
    i2c: bcm-kona: fix inconsistent indenting
    i2c: rcar: use proper device with dma_mapping_error
    i2c: sh_mobile: use proper device with dma_mapping_error
    i2c: mux: demux-pinctrl: invalidate properly when switching fails

    Linus Torvalds
     

10 Sep, 2016

6 commits

  • Bad blocks can be injected via /sys/block/pmemN/badblocks. In a situation
    where legacy pmem is being used or a pmem region created by using memmap
    kernel parameter, the injected bad blocks are not cleared due to
    nvdimm_clear_poison() failing from lack of ndctl function pointer. In
    this case we need to just return as handled and allow the bad blocks to
    be cleared rather than fail.

    Reviewed-by: Vishal Verma
    Signed-off-by: Dave Jiang
    Signed-off-by: Dan Williams

    Dave Jiang
     
  • The check for a 'pmem' type SPA in the MCE handler was inverted due to a
    merge/rebase error.

    Fixes: 6839a6d nfit: do an ARS scrub on hitting a latent media error
    Cc: linux-acpi@vger.kernel.org
    Cc: Dan Williams
    Signed-off-by: Vishal Verma
    Signed-off-by: Dan Williams

    Vishal Verma
     
  • Pull virtio fixes from Michael Tsirkin:
    "This includes a couple of bugfixs for virtio.

    The virtio console patch is actually also in x86/tip targeting 4.9
    because it helps vmap stacks, but it also fixes IOMMU_PLATFORM which
    was added in 4.8, and it seems important not to ship that in a broken
    configuration"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio_console: Stop doing DMA on the stack
    virtio: mark vring_dma_dev() static

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "Some GPIO fixes that have been boiling the last two weeks or so.
    Nothing special, I'm trying to sort out some Kconfig business and
    Russell needs a fix in for -his SA1100 rework.

    Summary:

    - Revert a pointless attempt to add an include to solve the UM allyes
    compilation problem.

    - Make the mcp23s08 depend on OF_GPIO as it uses it and doesn't
    compile properly without it.

    - Fix a probing problem for ucb1x00"

    * tag 'gpio-v4.8-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: sa1100: fix irq probing for ucb1x00
    gpio: mcp23s08: make driver depend on OF_GPIO
    Revert "gpio: include in gpiolib-of"

    Linus Torvalds
     
  • virtio_console uses a small DMA buffer for control requests. Move
    that buffer into heap memory.

    Doing virtio DMA on the stack is normally okay on non-DMA-API virtio
    systems (which is currently most of them), but it breaks completely
    if the stack is virtually mapped.

    Tested by typing both directions using picocom aimed at /dev/hvc0.

    Signed-off-by: Andy Lutomirski
    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: Amit Shah

    Andy Lutomirski
     
  • We get 1 warning when building kernel with W=1:
    drivers/virtio/virtio_ring.c:170:16: warning: no previous prototype for 'vring_dma_dev' [-Wmissing-prototypes]

    In fact, this function is only used in the file in which it is
    declared and don't need a declaration, but can be made static.
    so this patch marks this function with 'static'.

    Signed-off-by: Baoyou Xie
    Acked-by: Arnd Bergmann
    Signed-off-by: Michael S. Tsirkin

    Baoyou Xie
     

09 Sep, 2016

13 commits

  • …balbi/usb into usb-linus

    Felipe writes:

    usb: fixes for v4.8-rc6

    Unfortunately we have a bogus dwc3 patch leaked through the cracks and
    got merged into Linus' HEAD. That patch ended up causing off-by-1 error
    in our TRB accounting logic. Thankfully John Youn found out the problem
    and we provided a revert to the bogus dwc3 patch in no time.

    Apart from this off-by-1 error, we have two fixes to the Renesas drivers,
    a small fix to our generic phy driver, a NULL pointer dereference fix for
    f_eem and a build warning fix in dwc3.

    Greg Kroah-Hartman
     
  • …er.chen/usb into usb-linus

    Peter writes:

    Fix the possible kernel panic when the hardware signal is bad for chipidea udc.

    Greg Kroah-Hartman
     
  • …jic23/iio into staging-linus

    Jonathan writes:

    Second set of IIO fixes for the 4.8 cycle.

    We have a big rework of the kxsd9 driver queued up behind the fix below and
    a fix for a recent fix that was marked for stable.
    Hence this fix series is perhaps a little more urgent than average for IIO.
    * core
    - a fix for a fix in the last set. The recent fix for blocking ops when
    ! task running left a path (unlikely one) in which the function return
    value was not set - so initialise it to 0.
    - The IIO_TYPE_FRACTIONAL code previously didn't cope with negative
    fractions. Turned out a fix for this was in Analog's tree but hadn't made
    it upstream.
    * bmc150
    - reset chip at init time. At least one board out there ends up coming up
    in an unstable state due to noise during power up. The reset does no
    harm on other boards.
    * kxsd9
    - Fix a bug in the reported scaling due to failing to set the integer
    part to 0.
    * hid-sensors-pressure
    - Output was in the wrong units to comply with the IIO ABI.
    * tools
    - iio_generic_buffer: Fix the trigger-less mode by ensuring we don't fault
    out for having no trigger when we explicitly said we didn't want to have
    one.

    Greg Kroah-Hartman
     
  • Problems with the signal integrity of the high speed USB data lines or
    noise on reference ground lines can cause the i.MX6 USB controller to
    violate USB specs and exhibit unexpected behavior.

    It was observed that USBi_UI interrupts were triggered first and when
    isr_setup_status_phase was called, ci->status was NULL, which lead to a
    NULL pointer dereference kernel panic.

    This patch fixes the kernel panic, emits a warning once and returns
    -EPIPE to halt the device and let the host get stalled.
    It also adds a comment to point people, who are experiencing this issue,
    to their USB hardware design.

    Cc: #4.1+
    Signed-off-by: Clemens Gruber
    Signed-off-by: Peter Chen

    Clemens Gruber
     
  • Depending on a number of factors including:
    - Which exact Rockchip SoC we're working with
    - How deep we suspend
    - Which i2c port we're on

    We might lose the state of the i2c registers at suspend time.
    Specifically we've found that on rk3399 the i2c ports that are not in
    the PMU power domain lose their state with the current suspend depth
    configured by ARM Tursted Firmware.

    Note that there are very few actual i2c registers that aren't configured
    per transfer anyway so all we actually need to re-configure are the
    clock config registers. We'll just add a call to rk3x_i2c_adapt_div()
    at resume time and be done with it.

    NOTE: On rk3399 on ports whose power was lost, I put printouts in at
    resume time. I saw things like:
    before: con=0x00010300, div=0x00060006
    after: con=0x00010200, div=0x00180025

    Signed-off-by: Douglas Anderson
    Reviewed-by: David Wu
    Tested-by: David Wu
    [wsa: removed duplicate const]
    Signed-off-by: Wolfram Sang

    Doug Anderson
     
  • Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Wolfram Sang

    Geert Uytterhoeven
     
  • There are several ways to set the SDA hold time for i2c controller,
    including: Device Tree, built-in device properties and ACPI. However,
    if the SDA hold time is not specified by above method, we should
    read the value, where it is preset by firmware, and save it to
    sda_hold_time. This is needed because when i2c controller enters
    runtime suspend, the DW_IC_SDA_HOLD value will be reset to chipset
    default value. And during runtime resume, i2c_dw_init will be called
    to reconfigure i2c controller. If sda_hold_time is zero, the chipset
    default hold time will be used, that will be too short for some
    platforms. Therefore, to have a better tolerance, the DW_IC_SDA_HOLD
    value should be kept by sda_hold_time.

    Signed-off-by: Zhuo-hao Lee
    Reviewed-by: Andy Shevchenko
    Acked-by: Jarkko Nikula
    Signed-off-by: Wolfram Sang

    Zhuo-hao Lee
     
  • Instead of rolling our own timer, just utilize the blk mq req timeout and do the
    disconnect if any of our commands timeout.

    Signed-off-by: Josef Bacik
    Signed-off-by: Jens Axboe

    Josef Bacik
     
  • In preparation for some future changes, change a few of the state bools over to
    normal bits to set/clear properly.

    Signed-off-by: Josef Bacik
    Signed-off-by: Jens Axboe

    Josef Bacik
     
  • We hit a warning when shutting down the nbd connection because we have irq's
    disabled. We don't really need to do the shutdown under the lock, just clear
    the nbd->sock. So do the shutdown outside of the irq. This gets rid of the
    warning.

    Signed-off-by: Josef Bacik
    Signed-off-by: Jens Axboe

    Josef Bacik
     
  • This moves NBD over to using blkmq, which allows us to get rid of the NBD
    wide queue lock and the async submit kthread. We will start with 1 hw
    queue for now, but I plan to add multiple tcp connection support in the
    future and we'll fix how we set the hwqueue's.

    Signed-off-by: Josef Bacik
    Signed-off-by: Jens Axboe

    Josef Bacik
     
  • Pull dmi fix from Jean Delvare.

    * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    dmi-id: don't free dev structure after calling device_register

    Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "This is a slightly larger batch of fixes that we've been sitting on a
    few -rcs. Most of them are simple oneliners, but there are two sets
    that are slightly larger and worth pointing out:

    - A set of patches to OMAP to deal with hwmod for RTC on am33xx
    (beaglebone SoC, among others). It's the only clock that ever has
    a valid offset of 0, so a new flag needed introduction once this
    problem was discovered.

    - A collection of CCI fixes for performance counters discovered once
    people started using it on X-Gene CPUs"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (37 commits)
    arm-cci: pmu: Fix typo in event name
    Revert "ARM: tegra: fix erroneous address in dts"
    ARM: dts: imx6qdl: Fix SPDIF regression
    ARM: imx6: add missing BM_CLPCR_BYPASS_PMIC_READY setting for imx6sx
    ARM: dts: imx7d-sdb: fix ti,x-plate-ohms property name
    ARM: dts: kirkwood: Fix PCIe label on OpenRD
    ARM: kirkwood: ib62x0: fix size of u-boot environment partition
    bus: arm-ccn: make event groups reliable
    bus: arm-ccn: fix hrtimer registration
    bus: arm-ccn: fix PMU interrupt flags
    ARM: tegra: Correct polarity for Tegra114 PMIC interrupt
    MAINTAINERS: add tree entry for ARM/UniPhier architecture
    ARM: sun5i: Fix typo in trip point temperature
    MAINTAINERS: Switch to kernel.org account for Krzysztof Kozlowski
    ARM: imx6ul: populates platform device at .init_machine
    bus: arm-ccn: Add missing event attribute exclusions for host/guest
    bus: arm-ccn: Correct required arguments for XP PMU events
    bus: arm-ccn: Fix XP watchpoint settings bitmask
    bus: arm-ccn: Do not attempt to configure XPs for cycle counter
    bus: arm-ccn: Fix PMU handling of MN
    ...

    Linus Torvalds
     

08 Sep, 2016

8 commits