06 Feb, 2015

6 commits

  • Pull networking fixes from David Miller:

    1) Stretch ACKs can kill performance with Reno and CUBIC congestion
    control, largely due to LRO and GRO. Fix from Neal Cardwell.

    2) Fix userland breakage because we accidently emit zero length netlink
    messages from the bridging code. From Roopa Prabhu.

    3) Carry handling in generic csum_tcpudp_nofold is broken, fix from
    Karl Beldan.

    4) Remove bogus dev_set_net() calls from CAIF driver, from Nicolas
    Dichtel.

    5) Make sure PPP deflation never returns a length greater then the
    output buffer, otherwise we overflow and trigger skb_over_panic().
    Fix from Florian Westphal.

    6) COSA driver needs VIRT_TO_BUS Kconfig dependencies, from Arnd
    Bergmann.

    7) Don't increase route cached MTU on datagram too big ICMPs. From Li
    Wei.

    8) Fix error path leaks in nf_tables, from Pablo Neira Ayuso.

    9) Fix bitmask handling regression in netlink that broke things like
    acpi userland tools. From Pablo Neira Ayuso.

    10) Wrong header pointer passed to param_type2af() in SCTP code, from
    Saran Maruti Ramanara.

    11) Stacked vlans not handled correctly by vlan_get_protocol(), from
    Toshiaki Makita.

    12) Add missing DMA memory barrier to xgene driver, from Iyappan
    Subramanian.

    13) Fix crash in rate estimators, from Eric Dumazet.

    14) We've been adding various workarounds, one after another, for the
    change which added the per-net tcp_sock. It was meant to reduce
    socket contention but added lots of problems.

    Reduce this instead to a proper per-cpu socket and that rids us of
    all the daemons.

    From Eric Dumazet.

    15) Fix memory corruption and OOPS in mlx4 driver, from Jack
    Morgenstein.

    16) When we disabled UFO in the virtio_net device, it introduces some
    serious performance regressions. The orignal problem was IPV6
    fragment ID generation, so fix that properly instead. From Vlad
    Yasevich.

    17) sr9700 driver build breaks on xtensa because it defines macros with
    the same name as those used by the arch code. Use more unique
    names. From Chen Gang.

    18) Fix endianness in new virio 1.0 mode of the vhost net driver, from
    Michael S Tsirkin.

    19) Several sysctls were setting the maxlen attribute incorrectly, from
    Sasha Levin.

    20) Don't accept an FQ scheduler quantum of zero, that leads to crashes.
    From Kenneth Klette Jonassen.

    21) Fix dumping of non-existing actions in the packet scheduler
    classifier. From Ignacy Gawędzki.

    22) Return the write work_done value when doing TX work in the qlcnic
    driver.

    23) ip6gre_err accesses the info field with the wrong endianness, from
    Sabrina Dubroca.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (54 commits)
    sit: fix some __be16/u16 mismatches
    ipv6: fix sparse errors in ip6_make_flowlabel()
    net: remove some sparse warnings
    flow_keys: n_proto type should be __be16
    ip6_gre: fix endianness errors in ip6gre_err
    qlcnic: Fix NAPI poll routine for Tx completion
    amd-xgbe: Set RSS enablement based on hardware features
    amd-xgbe: Adjust for zero-based traffic class count
    cls_api.c: Fix dumping of non-existing actions' stats.
    pkt_sched: fq: avoid hang when quantum 0
    net: rds: use correct size for max unacked packets and bytes
    vhost/net: fix up num_buffers endian-ness
    gianfar: correct the bad expression while writing bit-pattern
    net: usb: sr9700: Use 'SR_' prefix for the common register macros
    Revert "drivers/net: Disable UFO through virtio"
    Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets"
    ipv6: Select fragment id during UFO segmentation if not set.
    xen-netback: stop the guest rx thread after a fatal error
    net/mlx4_core: Fix kernel Oops (mem corruption) when working with more than 80 VFs
    isdn: off by one in connect_res()
    ...

    Linus Torvalds
     
  • Pull SCSI fixes from James Bottomley:
    "This patch set is fixing two serious problems which have turned up
    late in the release cycle.

    The first fixes a problem with 4k sector disks where the transfer
    length (amount of data sent to the disk) was getting increased every
    time the disk was revalidated leading to potential for overflows.

    The other is a regression oops fix for some of our last merge window
    code"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    sd: Fix max transfer length for 4k disks
    scsi: fix device handler detach oops

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Radeon and amdkfd fixes.

    Radeon ones mostly for oops in some test/benchmark functions since
    fencing changes, and one regression fix for old GPUs,

    There is one cirrus regression fix, the 32bpp broke userspace, so this
    hides it behind a module option for the few users who care.

    I'm off for a few days, so this is probably the final pull I have, if
    I see fixes from Intel I'll forward the pull as I should have email"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/cirrus: Limit modes depending on bpp option
    drm/radeon: fix the crash in test functions
    drm/radeon: fix the crash in benchmark functions
    drm/radeon: properly set vm fragment size for TN/RL
    drm/radeon: don't init gpuvm if accel is disabled (v3)
    drm/radeon: fix PLLs on RS880 and older v2
    drm/amdkfd: Don't create BUG due to incorrect user parameter
    drm/amdkfd: max num of queues can't be 0
    drm/amdkfd: Fix bug in accounting of queues

    Linus Torvalds
     
  • Pull spi fixes from Mark Brown:
    "A couple of driver specific fixes:

    - Disable DMA mode for i.MX6DL chips due to a hardware bug.

    - Don't use devm_kzalloc() outside of bind/unbind paths in the
    fsl-dspi driver, fixing memory leaks"

    * tag 'spi-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: imx: use pio mode for i.mx6dl
    spi: spi-fsl-dspi: Remove usage of devm_kzalloc

    Linus Torvalds
     
  • Pull ACPI power management fix from Rafael Wysocki:
    "This is a revert of an ACPI Low-power Subsystem (LPSS) driver change
    that was supposed to improve power management of the LPSS DMA
    controller, but introduced more serious problems.

    Since fixing them turns out to be non-trivial, it is better to revert
    the commit in question at this point and try to fix the original issue
    differently in the next cycle"

    * tag 'pm+acpi-3.19-fin' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    Revert "ACPI / LPSS: introduce a 'proxy' device to power on LPSS for DMA"

    Linus Torvalds
     
  • Pull PCI fixes from Bjorn Helgaas:
    "Enumeration
    - Scan all device numbers on NEC as well as Stratus (Charlotte Richardson)

    Resource management
    - Handle read-only BARs on AMD CS553x devices (Myron Stowe)

    Synopsys DesignWare
    - Reject MSI-X IRQs (Lucas Stach)"

    * tag 'pci-v3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Handle read-only BARs on AMD CS553x devices
    PCI: Add NEC variants to Stratus ftServer PCIe DMI check
    PCI: designware: Reject MSI-X IRQs

    Linus Torvalds
     

05 Feb, 2015

8 commits

  • After d75b1ade567f ("net: less interrupt masking in NAPI")
    driver's NAPI poll routine is expected to return
    exact budget value if it wants to be re-called.

    Signed-off-by: Shahed Shaikh
    Fixes: d75b1ade567f ("net: less interrupt masking in NAPI")
    Signed-off-by: David S. Miller

    Shahed Shaikh
     
  • The RSS support requires enablement based on the features reported by
    the hardware. The setting of this flag is missing. Add support to
    set the RSS enablement flag based on the reported hardware features.

    Signed-off-by: Tom Lendacky
    Signed-off-by: David S. Miller

    Lendacky, Thomas
     
  • The number of traffic classes reported by the hardware is zero-based
    so increment the value returned to get an actual count.

    Signed-off-by: Tom Lendacky
    Signed-off-by: David S. Miller

    Lendacky, Thomas
     
  • The commit [8975626ea35a: drm/cirrus: allow 32bpp framebuffers for
    cirrus drm] broke X modesetting driver because cirrus driver still
    provides the full list of modes up to 1280x1024 while the 32bpp can
    support only up to 800x600.

    We might be able to filter out the invalid modes in mode_valid
    callback, but unfortunately the bpp in question can't be referred
    there for now (let me know if there is a better way to retrieve the
    bpp for the probed fb).

    So, instead, this patch adds the bpp module option to specify the
    maximal bpp explicitly and limits the resolutions in get_modes
    depending on its value.

    The default value is set to 24 so that the existing stuff keeps
    working. If you need a new 32bpp feature, specify cirrus.bpp=32
    option explicitly.

    Fixes: 8975626ea35a ('drm/cirrus: allow 32bpp framebuffers for cirrus drm')
    Signed-off-by: Takashi Iwai
    Signed-off-by: Dave Airlie

    Takashi Iwai
     
  • In virtio 1.0 mode, when mergeable buffers are enabled on a big-endian
    host, num_buffers wasn't byte-swapped correctly, so large incoming
    packets got corrupted.

    To fix, fill it in within hdr - this also makes sure it gets
    the correct type.

    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: David S. Miller

    Michael S. Tsirkin
     
  • This patch correct the bad expression while writing the
    bit-pattern from software's buffer to hardware registers.

    Signed-off-by: Sanjeev Sharma
    Signed-off-by: David S. Miller

    Sanjeev Sharma
     
  • The commone register macors (e.g. RSR) is too commont to drivers, it may
    be conflict with the architectures (e.g. xtensa, sh).

    The related warnings (with allmodconfig under xtensa):

    CC [M] drivers/net/usb/sr9700.o
    In file included from drivers/net/usb/sr9700.c:24:0:
    drivers/net/usb/sr9700.h:65:0: warning: "RSR" redefined
    #define RSR 0x06
    ^
    In file included from ./arch/xtensa/include/asm/bitops.h:22:0,
    from include/linux/bitops.h:36,
    from include/linux/kernel.h:10,
    from include/linux/list.h:8,
    from include/linux/module.h:9,
    from drivers/net/usb/sr9700.c:13:
    ./arch/xtensa/include/asm/processor.h:190:0: note: this is the location of the previous definition
    #define RSR(v,sr) __asm__ __volatile__ ("rsr %0,"__stringify(sr) : "=a"(v));
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: David S. Miller

    Chen Gang
     
  • Mark Brown
     

04 Feb, 2015

8 commits

  • This reverts commit 3d0ad09412ffe00c9afa201d01effdb6023d09b4.

    Now that GSO functionality can correctly track if the fragment
    id has been selected and select a fragment id if necessary,
    we can re-enable UFO on tap/macvap and virtio devices.

    Signed-off-by: Vladislav Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • This reverts commit 5188cd44c55db3e92cd9e77a40b5baa7ed4340f7.

    Now that GSO layer can track if fragment id has been selected
    and can allocate one if necessary, we don't need to do this in
    tap and macvtap. This reverts most of the code and only keeps
    the new ipv6 fragment id generation function that is still needed.

    Fixes: 3d0ad09412ff (drivers/net: Disable UFO through virtio)
    Signed-off-by: Vladislav Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Pull infiniband reverts from Roland Dreier:
    "Last minute InfiniBand/RDMA changes for 3.19:

    - Revert IPoIB driver back to 3.18 state. We had a number of fixes
    go into 3.19, but they introduced regressions. We tried to get
    everything fixed up but ran out of time, so we'll try again for
    3.20.

    - Similarly, turn off the new "extended query port" verb. Late in
    the cycle we realized the ABI is not quite right, and rather than
    freeze something in a rush and make a mistake, we'll take a bit
    more time and get it right in 3.20"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/core: Temporarily disable ex_query_device uverb
    Revert "IPoIB: Consolidate rtnl_lock tasks in workqueue"
    Revert "IPoIB: Make the carrier_on_task race aware"
    Revert "IPoIB: fix MCAST_FLAG_BUSY usage"
    Revert "IPoIB: fix mcast_dev_flush/mcast_restart_task race"
    Revert "IPoIB: change init sequence ordering"
    Revert "IPoIB: Use dedicated workqueues per interface"
    Revert "IPoIB: Make ipoib_mcast_stop_thread flush the workqueue"
    Revert "IPoIB: No longer use flush as a parameter"

    Linus Torvalds
     
  • Pull two fixes for md from Neil Brown:

    - Another live lock, needs backporting

    - work-around false positive with new warnings.

    * tag 'md/3.19-fixes' of git://neil.brown.name/md:
    md/bitmap: fix a might_sleep() warning.
    md/raid5: fix another livelock caused by non-aligned writes.

    Linus Torvalds
     
  • Some AMD CS553x devices have read-only BARs because of a firmware or
    hardware defect. There's a workaround in quirk_cs5536_vsa(), but it no
    longer works after 36e8164882ca ("PCI: Restore detection of read-only
    BARs"). Prior to 36e8164882ca, we filled in res->start; afterwards we
    leave it zeroed out. The quirk only updated the size, so the driver tried
    to use a region starting at zero, which didn't work.

    Expand quirk_cs5536_vsa() to read the base addresses from the BARs and
    hard-code the sizes.

    On Nix's system BAR 2's read-only value is 0x6200. Prior to 36e8164882ca,
    we interpret that as a 512-byte BAR based on the lowest-order bit set. Per
    datasheet sec 5.6.1, that BAR (MFGPT) requires only 64 bytes; use that to
    avoid clearing any address bits if a platform uses only 64-byte alignment.

    [bhelgaas: changelog, reduce BAR 2 size to 64]
    Fixes: 36e8164882ca ("PCI: Restore detection of read-only BARs")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=85991#c4
    Link: http://support.amd.com/TechDocs/31506_cs5535_databook.pdf
    Link: http://support.amd.com/TechDocs/33238G_cs5536_db.pdf
    Reported-and-tested-by: Nix
    Signed-off-by: Myron Stowe
    Signed-off-by: Bjorn Helgaas
    CC: stable@vger.kernel.org # v.2.6.27+

    Myron Stowe
     
  • Pull gpio fixes from Linus Walleij:
    "Yet more GPIO fixes for the v3.19 series.

    There is a high bug-spot activity in GPIO this merge window, much due
    to Johan Hovolds spearheading into actually exercising the removal
    path for GPIO chips, something that was never really exercised before.

    The other two fixes are augmenting erroneous behaviours in two
    specific drivers for minor systems.

    Summary from signed tag:

    - Two fixes stabilizing that which was never stable before: removal
    of GPIO chips, now let's stop leaking memory.
    - Make sure OMAP IRQs are usable when the irqchip API is used
    orthogonally to the gpiochip API.
    - Provide a default GPIO base for the mcp23s08 driver"

    * tag 'gpio-v3.19-5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: sysfs: fix memory leak in gpiod_sysfs_set_active_low
    gpio: sysfs: fix memory leak in gpiod_export_link
    gpio: mcp23s08: handle default gpio base
    gpio: omap: Fix bad device access with setup_irq()

    Linus Torvalds
     
  • Roland Dreier
     
  • Commit 5a77abf9a97a ("IB/core: Add support for extended query device caps")
    added a new extended verb to query the capabilities of RDMA devices, but the
    semantics of this verb are still under debate [1].

    Don't expose this verb to userspace until the ABI is nailed down.

    [1] [PATCH v1 0/5] IB/core: extended query device caps cleanup for v3.19
    http://www.spinics.net/lists/linux-rdma/msg22904.html

    Signed-off-by: Haggai Eran
    Reviewed-by: Yann Droneaud
    Signed-off-by: Roland Dreier

    Haggai Eran
     

03 Feb, 2015

14 commits

  • Revert commit 6c17ee44d524 (ACPI / LPSS: introduce a 'proxy' device
    to power on LPSS for DMA), as it introduced registration and probe
    ordering problems between devices on the LPSS that may lead to full
    hard system hang on boot in some cases.

    Rafael J. Wysocki
     
  • For TKT238285 hardware issue which may cause txfifo store data twice can only
    be caught on i.mx6dl, we use pio mode instead of DMA mode on i.mx6dl.

    Fixes: f62caccd12c17e4 (spi: spi-imx: add DMA support)
    Signed-off-by: Robin Gong
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Robin Gong
     
  • After commit e9d8b2c2968499c1f96563e6522c56958d5a1d0d (xen-netback:
    disable rogue vif in kthread context), a fatal (protocol) error would
    leave the guest Rx thread spinning, wasting CPU time. Commit
    ecf08d2dbb96d5a4b4bcc53a39e8d29cc8fef02e (xen-netback: reintroduce
    guest Rx stall detection) made this even worse by removing a
    cond_resched() from this path.

    Since a fatal error is non-recoverable, just allow the guest Rx thread
    to exit. This requires taking additional refs to the task so the
    thread exiting early is handled safely.

    Signed-off-by: David Vrabel
    Reported-by: Julien Grall
    Tested-by: Julien Grall
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    David Vrabel
     
  • Commit de966c592802 (net/mlx4_core: Support more than 64 VFs) was meant to
    allow up to 126 VFs. However, due to leaving MLX4_MFUNC_MAX too low, using
    more than 80 VFs resulted in memory corruptions (and Oopses) when more than
    80 VFs were requested. In addition, the number of slaves was left too high.

    This commit fixes these issues.

    Fixes: de966c592802 ("net/mlx4_core: Support more than 64 VFs")
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Jack Morgenstein
     
  • The bug here is that we use "Reject" as the index into the cau_t[] array
    in the else path. Since the cau_t[] has 9 elements if Reject == 9 then
    we are reading beyond the end of the array.

    My understanding of the code is that it's saying that if Reject is 1 or
    too high then that's invalid and we should hang up.

    Signed-off-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • This patch fixes a bug where vnet_skb_shape() didn't set the already-selected
    queue mapping when a packet copy was required. This results in using the
    wrong queue index for stops/starts, hung tx queues and watchdog timeouts
    under heavy load.

    Signed-off-by: David L Stevens
    Acked-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    David L Stevens
     
  • Currently qlge_update_hw_vlan_features() will always first put the
    interface down, then update features and then bring it up again. But it
    is possible to hit this code while the adapter is down and this causes a
    non-paired call to napi_disable(), which will get stuck.

    This patch fixes it by skipping these down/up actions if the interface
    is already down.

    Fixes: a45adbe8d352 ("qlge: Enhance nested VLAN (Q-in-Q) handling.")
    Cc: Harish Patil
    Signed-off-by: Marcelo Ricardo Leitner
    Signed-off-by: David S. Miller

    Marcelo Leitner
     
  • …/linux into drm-fixes

    Three small fixes that came up during last week, nothing scary:

    - Accidently incremented a counter instead of decrementing it (copy-paste error)
    - Module parameter of max num of queues must be at least 1 and not 0
    - Don't do BUG() as a result from wrong user input

    * tag 'drm-amdkfd-fixes-2015-02-02' of git://people.freedesktop.org/~gabbayo/linux:
    drm/amdkfd: Don't create BUG due to incorrect user parameter
    drm/amdkfd: max num of queues can't be 0
    drm/amdkfd: Fix bug in accounting of queues

    Dave Airlie
     
  • One last round of fixes for radeon for 3.19:
    - fix some fallout from the reservation object integration on the
    test/benchmark options
    - fix a crash in the gpu vm code if gfx init fails
    - fix a pll issue that leads to a blank screen on older IGP parts

    * 'drm-fixes-3.19' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: fix the crash in test functions
    drm/radeon: fix the crash in benchmark functions
    drm/radeon: properly set vm fragment size for TN/RL
    drm/radeon: don't init gpuvm if accel is disabled (v3)
    drm/radeon: fix PLLs on RS880 and older v2

    Dave Airlie
     
  • radeon_copy_dma and radeon_copy_blit must be called with
    a valid reservation object. Otherwise a crash will be provoked.
    We borrow the object from vram BO.

    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=88464

    Cc: stable@vger.kernel.org
    Reviewed-by: Christian König
    Signed-off-by: Ilija Hadzic
    Signed-off-by: Alex Deucher

    Ilija Hadzic
     
  • radeon_copy_dma and radeon_copy_blit must be called with
    a valid reservation object. Otherwise a crash will be provoked.
    We borrow the object from destination BO.

    bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=88464

    Cc: stable@vger.kernel.org
    Reviewed-by: Christian König
    Signed-off-by: Ilija Hadzic
    Signed-off-by: Alex Deucher

    Ilija Hadzic
     
  • Should be the same as cayman. We don't use VM by default
    on NI parts so this isn't critical.

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • If acceleration is disabled, it does not make sense
    to init gpuvm since nothing will use it. Moreover,
    if radeon_vm_init() gets called it uses accel to try
    and clear the pde tables, etc. which results in a bug.

    v2: handle vm_fini as well
    v3: handle bo_open/close as well

    Bug:
    https://bugs.freedesktop.org/show_bug.cgi?id=88786

    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Alex Deucher
     
  • This is a workaround for RS880 and older chips which seem to have
    an additional limit on the minimum PLL input frequency.

    v2: fix signed/unsigned warning

    bugs:
    https://bugzilla.kernel.org/show_bug.cgi?id=91861
    https://bugzilla.kernel.org/show_bug.cgi?id=83461

    Signed-off-by: Christian König
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Christian König
     

02 Feb, 2015

4 commits

  • The following patch fixes an issue observed with 4k sector disks
    where the max_hw_sectors attribute was getting set too large in
    sd_revalidate_disk. Since sdkp->max_xfer_blocks is in units
    of SCSI logical blocks and queue_max_hw_sectors is in units of
    512 byte blocks, on a 4k sector disk, every time we went through
    sd_revalidate_disk, we were taking the current value of
    queue_max_hw_sectors and increasing it by a factor of 8. Fix
    this by only shifting sdkp->max_xfer_blocks.

    Cc: stable@vger.kernel.org
    Signed-off-by: Brian King
    Reviewed-by: Paolo Bonzini
    Reviewed-by: Martin K. Petersen
    Signed-off-by: Christoph Hellwig

    Brian King
     
  • This fixes a regression caused by commit 1d5203 ("scsi: handle more device
    handler setup/teardown in common code").

    The bug is that the alua detach() callout will try to access the
    sddev->scsi_dh_data, but we have already set it to NULL. This patch
    moves the clearing of that field to after detach() is called.

    Signed-off-by: Mike Christie
    Signed-off-by: Christoph Hellwig

    Mike Christie
     
  • This patch changes a BUG_ON() statement to pr_debug, in case the user tries to
    update a non-existing queue.

    Signed-off-by: Oded Gabbay
    Reviewed-by: Ben Goz
    Reviewed-by: Jammy Zhou
    Reviewed-by: Alex Deucher

    Oded Gabbay
     
  • Signed-off-by: Oded Gabbay
    Reviewed-by: Jammy Zhou
    Reviewed-by: Alex Deucher

    Oded Gabbay