1. 06 2月, 2015 7 次提交
    • S
      mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range · 23aaed66
      Shiraz Hashim 提交于
      walk_page_range() silently skips vma having VM_PFNMAP set, which leads
      to undesirable behaviour at client end (who called walk_page_range).
      Userspace applications get the wrong data, so the effect is like just
      confusing users (if the applications just display the data) or sometimes
      killing the processes (if the applications do something with
      misunderstanding virtual addresses due to the wrong data.)
      
      For example for pagemap_read, when no callbacks are called against
      VM_PFNMAP vma, pagemap_read may prepare pagemap data for next virtual
      address range at wrong index.
      
      Eventually userspace may get wrong pagemap data for a task.
      Corresponding to a VM_PFNMAP marked vma region, kernel may report
      mappings from subsequent vma regions.  User space in turn may account
      more pages (than really are) to the task.
      
      In my case I was using procmem, procrack (Android utility) which uses
      pagemap interface to account RSS pages of a task.  Due to this bug it
      was giving a wrong picture for vmas (with VM_PFNMAP set).
      
      Fixes: a9ff785e ("mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas")
      Signed-off-by: NShiraz Hashim <shashim@codeaurora.org>
      Acked-by: NNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: <stable@vger.kernel.org>	[3.10+]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      23aaed66
    • L
      MMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 9d82f5eb
      Linus Torvalds 提交于
      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()
        ...
      9d82f5eb
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 14365ea2
      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
      14365ea2
    • L
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 42345d63
      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
      42345d63
    • L
      Merge tag 'spi-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · d445d46d
      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
      d445d46d
    • L
      Merge tag 'pm+acpi-3.19-fin' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · e7394c77
      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"
      e7394c77
    • L
      Merge tag 'pci-v3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · f3c2352d
      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
      f3c2352d
  2. 05 2月, 2015 18 次提交
  3. 04 2月, 2015 11 次提交
    • D
      Merge branch 'virtio_net_ufo' · 4c122f4c
      David S. Miller 提交于
      Vladislav Yasevich says:
      
      ====================
      Restore UFO support to virtio_net devices
      
      commit 3d0ad094
      Author: Ben Hutchings <ben@decadent.org.uk>
      Date:   Thu Oct 30 18:27:12 2014 +0000
      
          drivers/net: Disable UFO through virtio
      
      Turned off UFO support to virtio-net based devices due to issues
      with IPv6 fragment id generation for UFO packets.  The issue
      was that IPv6 UFO/GSO implementation expects the fragment id
      to be supplied in skb_shinfo().  However, for packets generated
      by the VMs, the fragment id is not supplied which causes all
      IPv6 fragments to have the id of 0.
      
      The problem is that turning off UFO support on tap/macvtap
      as well as virtio devices caused issues with migrations.
      Migrations would fail when moving a vm from a kernel supporting
      expecting UFO to work to the newer kernels that disabled UFO.
      
      This series provides a partial solution to address the migration
      issue.  The series allows us to track whether skb_shinfo()->ip6_frag_id
      has been set by treating value of 0 as unset.
      This lets GSO code to generate fragment ids if they are necessary
      (ex: packet was generated by VM or packet socket).
      
      Since v3:
        - Resolved build issue when IPv6 is a module.
        - Removed trailing white space.
      
      Since v2:
        - Rebase and rebuild to make sure everything works.  No changes
          to the patches were done.
      
      Since v1:
        - Removed the skb bit and use value of 0 as tracker.
        - Used Eric's suggestion to set fragment id as 0x80000000 if id
          generation procedure yeilded a 0 result.
        - Consolidated ipv6 id genration code.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4c122f4c
    • V
      Revert "drivers/net: Disable UFO through virtio" · e3e3c423
      Vlad Yasevich 提交于
      This reverts commit 3d0ad094.
      
      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: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3e3c423
    • V
      Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets" · 72f65107
      Vlad Yasevich 提交于
      This reverts commit 5188cd44.
      
      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: 3d0ad094 (drivers/net: Disable UFO through virtio)
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      72f65107
    • V
      ipv6: Select fragment id during UFO segmentation if not set. · 0508c07f
      Vlad Yasevich 提交于
      If the IPv6 fragment id has not been set and we perform
      fragmentation due to UFO, select a new fragment id.
      We now consider a fragment id of 0 as unset and if id selection
      process returns 0 (after all the pertrubations), we set it to
      0x80000000, thus giving us ample space not to create collisions
      with the next packet we may have to fragment.
      
      When doing UFO integrity checking, we also select the
      fragment id if it has not be set yet.   This is stored into
      the skb_shinfo() thus allowing UFO to function correclty.
      
      This patch also removes duplicate fragment id generation code
      and moves ipv6_select_ident() into the header as it may be
      used during GSO.
      Signed-off-by: NVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0508c07f
    • L
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · dc6d6844
      Linus Torvalds 提交于
      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"
      dc6d6844
    • L
      Merge tag 'md/3.19-fixes' of git://neil.brown.name/md · 59acf657
      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.
      59acf657
    • M
      PCI: Handle read-only BARs on AMD CS553x devices · 06cf35f9
      Myron Stowe 提交于
      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 36e81648 ("PCI: Restore detection of read-only
      BARs").  Prior to 36e81648, 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 36e81648,
      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: 36e81648 ("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.pdfReported-and-tested-by: NNix <nix@esperi.org.uk>
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      CC: stable@vger.kernel.org	# v.2.6.27+
      06cf35f9
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 0f98c38d
      Linus Torvalds 提交于
      Pull final block layer fixes from Jens Axboe:
       "Unfortunately the hctx/ctx lifetime fix from last pull had some
        issues.  This pull request contains a revert of the problematic
        commit, and a proper rewrite of it.
      
        The rewrite has been tested by the users complaining about the
        regression, and it works fine now.  Additionally, I've run testing on
        all the blk-mq use cases for it and it passes.  So we should
        definitely get this into 3.19, to avoid regression for some cases"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: release mq's kobjects in blk_release_queue()
        Revert "blk-mq: fix hctx/ctx kobject use-after-free"
      0f98c38d
    • L
      Merge tag 'gpio-v3.19-5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 0dc17d14
      Linus Torvalds 提交于
      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()
      0dc17d14
    • R
      Merge branches 'ipoib' and 'odp' into for-next · ecb7b123
      Roland Dreier 提交于
      ecb7b123
    • H
      IB/core: Temporarily disable ex_query_device uverb · 7e36ef82
      Haggai Eran 提交于
      Commit 5a77abf9 ("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.htmlSigned-off-by: NHaggai Eran <haggaie@mellanox.com>
      Reviewed-by: NYann Droneaud <ydroneaud@opteya.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      7e36ef82
  4. 03 2月, 2015 4 次提交