1. 05 Feb, 2015 19 commits
    • Shiraz Hashim's avatar
      mm: pagewalk: call pte_hole() for VM_PFNMAP during walk_page_range · 23aaed66
      Shiraz Hashim authored
      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: default avatarShiraz Hashim <shashim@codeaurora.org>
      Acked-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
      Cc: <stable@vger.kernel.org>	[3.10+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      23aaed66
    • Linus Torvalds's avatar
      MMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 9d82f5eb
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 14365ea2
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 42345d63
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.19-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · d445d46d
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.19-fin' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · e7394c77
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'pci-v3.19-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · f3c2352d
      Linus Torvalds authored
      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
    • Eric Dumazet's avatar
      sit: fix some __be16/u16 mismatches · a409caec
      Eric Dumazet authored
      Fixes following sparse warnings :
      
      net/ipv6/sit.c:1509:32: warning: incorrect type in assignment (different base types)
      net/ipv6/sit.c:1509:32:    expected restricted __be16 [usertype] sport
      net/ipv6/sit.c:1509:32:    got unsigned short
      net/ipv6/sit.c:1514:32: warning: incorrect type in assignment (different base types)
      net/ipv6/sit.c:1514:32:    expected restricted __be16 [usertype] dport
      net/ipv6/sit.c:1514:32:    got unsigned short
      net/ipv6/sit.c:1711:38: warning: incorrect type in argument 3 (different base types)
      net/ipv6/sit.c:1711:38:    expected unsigned short [unsigned] [usertype] value
      net/ipv6/sit.c:1711:38:    got restricted __be16 [usertype] sport
      net/ipv6/sit.c:1713:38: warning: incorrect type in argument 3 (different base types)
      net/ipv6/sit.c:1713:38:    expected unsigned short [unsigned] [usertype] value
      net/ipv6/sit.c:1713:38:    got restricted __be16 [usertype] dport
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a409caec
    • Eric Dumazet's avatar
      ipv6: fix sparse errors in ip6_make_flowlabel() · 67765146
      Eric Dumazet authored
      include/net/ipv6.h:713:22: warning: incorrect type in assignment (different base types)
      include/net/ipv6.h:713:22:    expected restricted __be32 [usertype] hash
      include/net/ipv6.h:713:22:    got unsigned int
      include/net/ipv6.h:719:25: warning: restricted __be32 degrades to integer
      include/net/ipv6.h:719:22: warning: invalid assignment: ^=
      include/net/ipv6.h:719:22:    left side has type restricted __be32
      include/net/ipv6.h:719:22:    right side has type unsigned int
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67765146
    • Eric Dumazet's avatar
      net: remove some sparse warnings · 2ce1ee17
      Eric Dumazet authored
      netdev_adjacent_add_links() and netdev_adjacent_del_links()
      are static.
      
      queue->qdisc has __rcu annotation, need to use RCU_INIT_POINTER()
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ce1ee17
    • Eric Dumazet's avatar
      flow_keys: n_proto type should be __be16 · f4575d35
      Eric Dumazet authored
      (struct flow_keys)->n_proto is in network order, use
      proper type for this.
      
      Fixes following sparse errors :
      
      net/core/flow_dissector.c:139:39: warning: incorrect type in assignment (different base types)
      net/core/flow_dissector.c:139:39:    expected unsigned short [unsigned] [usertype] n_proto
      net/core/flow_dissector.c:139:39:    got restricted __be16 [assigned] [usertype] proto
      net/core/flow_dissector.c:237:23: warning: incorrect type in assignment (different base types)
      net/core/flow_dissector.c:237:23:    expected unsigned short [unsigned] [usertype] n_proto
      net/core/flow_dissector.c:237:23:    got restricted __be16 [assigned] [usertype] proto
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Fixes: e0f31d84 ("flow_keys: Record IP layer protocol in skb_flow_dissect()")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f4575d35
    • Sabrina Dubroca's avatar
      ip6_gre: fix endianness errors in ip6gre_err · d1e158e2
      Sabrina Dubroca authored
      info is in network byte order, change it back to host byte order
      before use. In particular, the current code sets the MTU of the tunnel
      to a wrong (too big) value.
      
      Fixes: c12b395a ("gre: Support GRE over IPv6")
      Signed-off-by: default avatarSabrina Dubroca <sd@queasysnail.net>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d1e158e2
    • Shahed Shaikh's avatar
      qlcnic: Fix NAPI poll routine for Tx completion · f31ec95f
      Shahed Shaikh authored
      After d75b1ade ("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: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
      Fixes: d75b1ade ("net: less interrupt masking in NAPI")
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f31ec95f
    • Lendacky, Thomas's avatar
      amd-xgbe: Set RSS enablement based on hardware features · cf180b8a
      Lendacky, Thomas authored
      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: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf180b8a
    • Lendacky, Thomas's avatar
      amd-xgbe: Adjust for zero-based traffic class count · 211fcf6d
      Lendacky, Thomas authored
      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: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      211fcf6d
    • Ignacy Gawędzki's avatar
      cls_api.c: Fix dumping of non-existing actions' stats. · b057df24
      Ignacy Gawędzki authored
      In tcf_exts_dump_stats(), ensure that exts->actions is not empty before
      accessing the first element of that list and calling tcf_action_copy_stats()
      on it.  This fixes some random segvs when adding filters of type "basic" with
      no particular action.
      
      This also fixes the dumping of those "no-action" filters, which more often
      than not made calls to tcf_action_copy_stats() fail and consequently netlink
      attributes added by the caller to be removed by a call to nla_nest_cancel().
      
      Fixes: 33be6271 ("net_sched: act: use standard struct list_head")
      Signed-off-by: default avatarIgnacy Gawędzki <ignacy.gawedzki@green-communications.fr>
      Acked-by: default avatarCong Wang <cwang@twopensource.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b057df24
    • Kenneth Klette Jonassen's avatar
      pkt_sched: fq: avoid hang when quantum 0 · 3725a269
      Kenneth Klette Jonassen authored
      Configuring fq with quantum 0 hangs the system, presumably because of a
      non-interruptible infinite loop. Either way quantum 0 does not make sense.
      
      Reproduce with:
      sudo tc qdisc add dev lo root fq quantum 0 initial_quantum 0
      ping 127.0.0.1
      Signed-off-by: default avatarKenneth Klette Jonassen <kennetkl@ifi.uio.no>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3725a269
    • Takashi Iwai's avatar
      drm/cirrus: Limit modes depending on bpp option · 7f551b1e
      Takashi Iwai authored
      The commit [8975626e: 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: 8975626e ('drm/cirrus: allow 32bpp framebuffers for cirrus drm')
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      7f551b1e
    • Sasha Levin's avatar
      net: rds: use correct size for max unacked packets and bytes · db27ebb1
      Sasha Levin authored
      Max unacked packets/bytes is an int while sizeof(long) was used in the
      sysctl table.
      
      This means that when they were getting read we'd also leak kernel memory
      to userspace along with the timeout values.
      Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db27ebb1
  2. 04 Feb, 2015 13 commits
    • Michael S. Tsirkin's avatar
      vhost/net: fix up num_buffers endian-ness · 5201aa49
      Michael S. Tsirkin authored
      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: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5201aa49
    • Sanjeev Sharma's avatar
      gianfar: correct the bad expression while writing bit-pattern · 75300ad2
      Sanjeev Sharma authored
      This patch correct the bad expression while writing the
      bit-pattern from software's buffer to hardware registers.
      Signed-off-by: default avatarSanjeev Sharma <Sanjeev_Sharma@mentor.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      75300ad2
    • Chen Gang's avatar
      net: usb: sr9700: Use 'SR_' prefix for the common register macros · 06b19b1b
      Chen Gang authored
      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: default avatarChen Gang <gang.chen.5i5j@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      06b19b1b
    • Mark Brown's avatar
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 5ee0e962
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Three small cifs fixes.  One fixes a hang under stress, and the other
        two are security related"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix MUST SecurityFlags filtering
        Complete oplock break jobs before closing file handle
        cifs: use memzero_explicit to clear stack buffer
      5ee0e962
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 5659c0e4
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "A number of ARM fixes, the biggest is fixing a regression caused by
        appended DT blobs exceeding 64K, causing the decompressor fixup code
        to fail to patch the DT blob.  Another important fix is for the ASID
        allocator from Will Deacon which prevents some rare crashes seen on
        some systems.  Lastly, there's a build fix for v7M systems when printk
        support is disabled.
      
        The last two remaining fixes are more cosmetic - the IOMMU one
        prevents an annoying harmless warning message, and we disable the
        kernel strict memory permissions on non-MMU which can't support it
        anyway"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8299/1: mm: ensure local active ASID is marked as allocated on rollover
        ARM: 8298/1: ARM_KERNMEM_PERMS only works with MMU enabled
        ARM: 8295/1: fix v7M build for !CONFIG_PRINTK
        ARM: 8294/1: ATAG_DTB_COMPAT: remove the DT workspace's hardcoded 64KB size
        ARM: 8288/1: dma-mapping: don't detach devices without an IOMMU during teardown
      5659c0e4
    • David S. Miller's avatar
      Merge branch 'virtio_net_ufo' · 4c122f4c
      David S. Miller authored
      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: default avatarDavid S. Miller <davem@davemloft.net>
      4c122f4c
    • Vlad Yasevich's avatar
      Revert "drivers/net: Disable UFO through virtio" · e3e3c423
      Vlad Yasevich authored
      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: default avatarVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e3e3c423
    • Vlad Yasevich's avatar
      Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets" · 72f65107
      Vlad Yasevich authored
      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: default avatarVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      72f65107
    • Vlad Yasevich's avatar
      ipv6: Select fragment id during UFO segmentation if not set. · 0508c07f
      Vlad Yasevich authored
      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: default avatarVladislav Yasevich <vyasevic@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0508c07f
    • Linus Torvalds's avatar
      Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · dc6d6844
      Linus Torvalds authored
      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
    • Linus Torvalds's avatar
      Merge tag 'md/3.19-fixes' of git://neil.brown.name/md · 59acf657
      Linus Torvalds authored
      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
    • Myron Stowe's avatar
      PCI: Handle read-only BARs on AMD CS553x devices · 06cf35f9
      Myron Stowe authored
      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: default avatarNix <nix@esperi.org.uk>
      Signed-off-by: default avatarMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      CC: stable@vger.kernel.org	# v.2.6.27+
      06cf35f9
  3. 03 Feb, 2015 8 commits