1. 05 Apr, 2012 2 commits
    • RongQing.Li's avatar
      ipv6: fix array index in ip6_mc_add_src() · 78d50217
      RongQing.Li authored
      Convert array index from the loop bound to the loop index.
      
      And remove the void type conversion to ip6_mc_del1_src() return
      code, seem it is unnecessary, since ip6_mc_del1_src() does not
      use __must_check similar attribute, no compiler will report the
      warning when it is removed.
      
      v2: enrich the commit header
      Signed-off-by: default avatarRongQing.Li <roy.qing.li@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      78d50217
    • Thadeu Lima de Souza Cascardo's avatar
      mlx4: allocate just enough pages instead of always 4 pages · 117980c4
      Thadeu Lima de Souza Cascardo authored
      The driver uses a 2-order allocation, which is too much on architectures
      like ppc64, which has a 64KiB page. This particular allocation is used
      for large packet fragments that may have a size of 512, 1024, 4096 or
      fill the whole allocation. So, a minimum size of 16384 is good enough
      and will be the same size that is used in architectures of 4KiB sized
      pages.
      
      This will avoid allocation failures that we see when the system is under
      stress, but still has plenty of memory, like the one below.
      
      This will also allow us to set the interface MTU to higher values like
      9000, which was not possible on ppc64 without this patch.
      
      Node 1 DMA: 737*64kB 37*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB = 51904kB
      83137 total pagecache pages
      0 pages in swap cache
      Swap cache stats: add 0, delete 0, find 0/0
      Free swap  = 10420096kB
      Total swap = 10420096kB
      107776 pages RAM
      1184 pages reserved
      147343 pages shared
      28152 pages non-shared
      netstat: page allocation failure. order:2, mode:0x4020
      Call Trace:
      [c0000001a4fa3770] [c000000000012f04] .show_stack+0x74/0x1c0 (unreliable)
      [c0000001a4fa3820] [c00000000016af38] .__alloc_pages_nodemask+0x618/0x930
      [c0000001a4fa39a0] [c0000000001a71a0] .alloc_pages_current+0xb0/0x170
      [c0000001a4fa3a40] [d00000000dcc3e00] .mlx4_en_alloc_frag+0x200/0x240 [mlx4_en]
      [c0000001a4fa3b10] [d00000000dcc3f8c] .mlx4_en_complete_rx_desc+0x14c/0x250 [mlx4_en]
      [c0000001a4fa3be0] [d00000000dcc4eec] .mlx4_en_process_rx_cq+0x62c/0x850 [mlx4_en]
      [c0000001a4fa3d20] [d00000000dcc5150] .mlx4_en_poll_rx_cq+0x40/0x90 [mlx4_en]
      [c0000001a4fa3dc0] [c0000000004e2bb8] .net_rx_action+0x178/0x450
      [c0000001a4fa3eb0] [c00000000009c9b8] .__do_softirq+0x118/0x290
      [c0000001a4fa3f90] [c000000000031df8] .call_do_softirq+0x14/0x24
      [c000000184c3b520] [c00000000000e700] .do_softirq+0xf0/0x110
      [c000000184c3b5c0] [c00000000009c6d4] .irq_exit+0xb4/0xc0
      [c000000184c3b640] [c00000000000e964] .do_IRQ+0x144/0x230
      Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
      Signed-off-by: default avatarKleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
      Tested-by: default avatarKleber Sacilotto de Souza <klebers@linux.vnet.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      117980c4
  2. 04 Apr, 2012 15 commits
  3. 03 Apr, 2012 23 commits
    • Pablo Neira Ayuso's avatar
      netfilter: nf_conntrack: fix count leak in error path of __nf_conntrack_alloc · d96fc659
      Pablo Neira Ayuso authored
      We have to decrement the conntrack counter if we fail to access the
      zone extension.
      Reported-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d96fc659
    • Pablo Neira Ayuso's avatar
      netfilter: xt_CT: fix missing put timeout object in error path · ee14186f
      Pablo Neira Ayuso authored
      The error path misses putting the timeout object. This patch adds
      new function xt_ct_tg_timeout_put() to put the timeout object.
      Reported-by: default avatarTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ee14186f
    • Pablo Neira Ayuso's avatar
    • David S. Miller's avatar
      9b461783
    • Artem Savkov's avatar
      r8169: enable napi on resume. · cff4c162
      Artem Savkov authored
      NAPI is disabled during suspend and needs to be enabled on resume. Without
      this the driver locks up during resume in rtl_reset_work() trying to disable
      NAPI again.
      Signed-off-by: default avatarArtem Savkov <artem.savkov@gmail.com>
      Acked-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cff4c162
    • Yuval Mintz's avatar
      bnx2x: correction to firmware interface · f2ed5ee1
      Yuval Mintz authored
      Commit 621b4d66 updated the bnx2x driver to a new FW version, but lacked
      a commit to a header file with changes to the firmware's interface.
      The missing interface change causes iscsi and fcoe to misbehave with the
      updated firmware.
      Signed-off-by: default avatarYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: default avatarDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      CC: Michael Chan <mchan@broadcom.com>
      CC: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f2ed5ee1
    • Srinivas Kandagatla's avatar
      phy:icplus:fix Auto Power Saving in ip101a_config_init. · b3300146
      Srinivas Kandagatla authored
      This patch fixes Auto Power Saving configuration in ip101a_config_init
      which was broken as there is no phy register write followed after
      setting IP101A_APS_ON flag.
      
      This patch also fixes the return value of ip101a_config_init.
      
      Without this patch ip101a_config_init returns 2 which is not an error
      accroding to IS_ERR and the mac driver will continue accessing 2 as
      valid pointer to phy_dev resulting in memory fault.
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@st.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b3300146
    • David S. Miller's avatar
    • Matthew Vick's avatar
      e1000e: Guarantee descriptor writeback flush success. · bf03085f
      Matthew Vick authored
      In rare circumstances, a descriptor writeback flush may not work if it
      arrives on a specific clock cycle as a writeback request is going out.
      Signed-off-by: default avatarMatthew Vick <matthew.vick@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      bf03085f
    • Bruce Allan's avatar
      e1000e: prevent oops when adapter is being closed and reset simultaneously · bb9e44d0
      Bruce Allan authored
      When the adapter is closed while it is simultaneously going through a
      reset, it can cause a null-pointer dereference when the two different code
      paths simultaneously cleanup up the Tx/Rx resources.
      Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
      Tested-by: default avatarAaron Brown <aaron.f.brown@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      bb9e44d0
    • Multanen, Eric W's avatar
      ixgbe: driver fix for link flap · aacc1bea
      Multanen, Eric W authored
      Fix up code so that changes in DCB settings
      are detected only when ixgbe_dcbnl_set_all is called.
      Previously, a series of 'change' commands followed by
      a call to ixgbe_dcbnl_set_all() would always be handled
      as a HW change - even if the net change was zero.
      This patch checks for this case of no actual change and
      skips going through the HW set process.
      
      Without this fix, the link could reset and result in
      a link flap.
      
      The core change in this patch is to check for changes
      in the ixgbe_copy_dcb_cfg() routine - and return
      a bitmask of detected changes.  The other
      places where changes were detected previously can be removed.
      Signed-off-by: default avatarEric Multanen <eric.w.multanen@intel.com>
      Tested-by: default avatarRoss Brattain <ross.b.brattain@intel.com>
      Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      aacc1bea
    • Jan Seiffert's avatar
      bpf jit: Let the x86 jit handle negative offsets · a998d434
      Jan Seiffert authored
      Now the helper function from filter.c for negative offsets is exported,
      it can be used it in the jit to handle negative offsets.
      
      First modify the asm load helper functions to handle:
      - know positive offsets
      - know negative offsets
      - any offset
      
      then the compiler can be modified to explicitly use these helper
      when appropriate.
      
      This fixes the case of a negative X register and allows to lift
      the restriction that bpf programs with negative offsets can't
      be jited.
      Signed-of-by: default avatarJan Seiffert <kaffeemonster@googlemail.com>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a998d434
    • Jan Seiffert's avatar
      bpf jit: Make the filter.c::__load_pointer helper non-static for the jits · f03fb3f4
      Jan Seiffert authored
      The function is renamed to make it a little more clear what it does.
      It is not added to any .h because it is not for general consumption, only for
      bpf internal use (and so by the jits).
      Signed-of-by: default avatarJan Seiffert <kaffeemonster@googlemail.com>
      Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f03fb3f4
    • Fernando Luis Vazquez Cao's avatar
      TCP: update ip_local_port_range documentation · 5d6bd861
      Fernando Luis Vazquez Cao authored
      The explanation of ip_local_port_range in
      Documentation/networking/ip-sysctl.txt contains several factual
      errors:
      
      - The default value of ip_local_port_range does not depend on the
        amount of memory available in the system.
      - tcp_tw_recycle is not enabled by default.
      - 1024-4999 is not the default value.
      - Etc.
      
      Clean up the mess.
      Signed-off-by: default avatarFernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5d6bd861
    • Eric Dumazet's avatar
      tcp: allow splice() to build full TSO packets · 2f533844
      Eric Dumazet authored
      vmsplice()/splice(pipe, socket) call do_tcp_sendpages() one page at a
      time, adding at most 4096 bytes to an skb. (assuming PAGE_SIZE=4096)
      
      The call to tcp_push() at the end of do_tcp_sendpages() forces an
      immediate xmit when pipe is not already filled, and tso_fragment() try
      to split these skb to MSS multiples.
      
      4096 bytes are usually split in a skb with 2 MSS, and a remaining
      sub-mss skb (assuming MTU=1500)
      
      This makes slow start suboptimal because many small frames are sent to
      qdisc/driver layers instead of big ones (constrained by cwnd and packets
      in flight of course)
      
      In fact, applications using sendmsg() (adding an additional memory copy)
      instead of vmsplice()/splice()/sendfile() are a bit faster because of
      this anomaly, especially if serving small files in environments with
      large initial [c]wnd.
      
      Call tcp_push() only if MSG_MORE is not set in the flags parameter.
      
      This bit is automatically provided by splice() internals but for the
      last page, or on all pages if user specified SPLICE_F_MORE splice()
      flag.
      
      In some workloads, this can reduce number of sent logical packets by an
      order of magnitude, making zero-copy TCP actually faster than
      one-copy :)
      Reported-by: default avatarTom Herbert <therbert@google.com>
      Cc: Nandita Dukkipati <nanditad@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: H.K. Jerry Chu <hkchu@google.com>
      Cc: Maciej Żenczykowski <maze@google.com>
      Cc: Mahesh Bandewar <maheshb@google.com>
      Cc: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail&gt;com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f533844
    • David Woodhouse's avatar
      ppp: Don't stop and restart queue on every TX packet · e675f0cc
      David Woodhouse authored
      For every transmitted packet, ppp_start_xmit() will stop the netdev
      queue and then, if appropriate, restart it. This causes the TX softirq
      to run, entirely gratuitously.
      
      This is "only" a waste of CPU time in the normal case, but it's actively
      harmful when the PPP device is a TEQL slave — the wakeup will cause the
      offending device to receive the next TX packet from the TEQL queue, when
      it *should* have gone to the next slave in the list. We end up seeing
      large bursts of packets on just *one* slave device, rather than using
      the full available bandwidth over all slaves.
      
      This patch fixes the problem by *not* unconditionally stopping the queue
      in ppp_start_xmit(). It adds a return value from ppp_xmit_process()
      which indicates whether the queue should be stopped or not.
      
      It *doesn't* remove the call to netif_wake_queue() from
      ppp_xmit_process(), because other code paths (especially from
      ppp_output_wakeup()) need it there and it's messy to push it out to the
      other callers to do it based on the return value. So we leave it in
      place — it's a no-op in the case where the queue wasn't stopped, so it's
      harmless in the TX path.
      Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e675f0cc
    • Eric Dumazet's avatar
      net: fix /proc/net/dev regression · 2def16ae
      Eric Dumazet authored
      Commit f04565dd (dev: use name hash for dev_seq_ops) added a second
      regression, as some devices are missing from /proc/net/dev if many
      devices are defined.
      
      When seq_file buffer is filled, the last ->next/show() method is
      canceled (pos value is reverted to value prior ->next() call)
      
      Problem is after above commit, we dont restart the lookup at right
      position in ->start() method.
      
      Fix this by removing the internal 'pos' pointer added in commit, since
      we need to use the 'loff_t *pos' provided by seq_file layer.
      
      This also reverts commit 5cac98dd (net: Fix corruption
      in /proc/*/net/dev_mcast), since its not needed anymore.
      Reported-by: default avatarBen Greear <greearb@candelatech.com>
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Cc: Mihai Maruseac <mmaruseac@ixiacom.com>
      Tested-by: default avatarBen Greear <greearb@candelatech.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2def16ae
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes-intel' of git://people.freedesktop.org/~airlied/linux · 01627d96
      Linus Torvalds authored
      Pull drm update from Dave Airlie:
       "This pull just contains a forward of the Intel fixes from Daniel.
      
        The only annoyance is the RC6 enable, which really should have made
        -next, but since Ubuntu are shipping it I reckon its getting a good
        testing now by the time 3.4 comes out.
      
        The pull from Daniel contains his pull message to me:
      
          "A few patches for 3.4, major part is 3 regression fixes:
           - ppgtt broke hibernate on snb/ivb.  Somehow our QA claims that it
             still works, which is why this has not been caught earlier.
           - ppgtt flails in combination with dmar.  I kinda expected this one :(
           - fence handling bugfix for gen2/3.  Iirc this one is about a year
             old, fix curtesy Chris Wilson.  I've created an shockingly simple
             i-g-t test to catch this in the future."
      
           Wrt regressions I've just got a report that gmbus (newly enabled
           again in 3.4) is a bit noisy.  I'm looking into this atm.
      
           Also included are the rc6 enable patches for snb from Eugeni.  I
           wanted to include these in the main 3.4 pull but screwed it up.
           Please hit me.  Imo these kind of patches really should go in
           before -rc1, but in thise case rc6 has brought us tons of press and
           guinea pigs^W^W testers and ubuntu is already running with it.  So
           I estimate a pretty small chance for this to blow up.
      
           And some smaller things:
            - two minor locking snafus
            - server gt2 ivb pciid
            - 2 patches to sanitize the register state left behind by the bios
              some more
            - 2 new quirk entries
            - cs readback trick against missed IRQs from ivb also enabled on snb
            - sprite fix from Jesse"
      
      Let's see if the "enable RC6 on sandybridge" finally works and sticks.
      I've been enabling it by hand (i915.i915_enable_rc6=1) for several
      months on my Macbook Air, and it definitely makes a difference (and has
      worked for me).  But every time we enabled it before it showed some odd
      hw buglet for *somebody*.
      
      This time it's all good, I'm sure.
      
      * 'drm-fixes-intel' of git://people.freedesktop.org/~airlied/linux:
        drm/i915: treat src w & h as fixed point in sprite handling code
        drm/i915: no-lvds quirk on MSI DC500
        drm/i915: Add lock on drm_helper_resume_force_mode
        drm/i915: don't leak struct_mutex lock on ppgtt init failures
        drm/i915: disable ppgtt on snb when dmar is enabled
        drm/i915: add Ivy Bridge GT2 Server entries
        drm/i915: properly clear SSC1 bit in the pch refclock init code
        drm/i915: apply CS reg readback trick against missed IRQ on snb
        drm/i915: quirk away broken OpRegion VBT
        drm/i915: enable plain RC6 on Sandy Bridge by default
        drm/i915: allow to select rc6 modes via kernel parameter
        drm/i915: Mark untiled BLT commands as fenced on gen2/3
        drm/i915: properly restore the ppgtt page directory on resume
        drm/i915: Sanitize BIOS debugging bits from PIPECONF
      01627d96
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · e1a7eb08
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Mainly nouveau fixes, one for a regressions in -rc1, fixes for booting
        on a ppc G5, and a Kconfig fix.  Two radeon fixes, one oops, one s/r
        fix.  One udl mmap fix.  And one core drm fix to stop bad fbdev apps
        overwriting bits of ram."
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm: Validate requested virtual size against allocated fb size
        drm/radeon: Don't dereference possibly-NULL pointer.
        mm, drm/udl: fixup vma flags on mmap
        drm/radeon/kms: fix fans after resume
        nouveau/bios: Fix tracking of BIOS image data
        nouveau: Fix crash when pci_ram_rom() returns a size of 0
        drm/nouveau: select POWER_SUPPLY
        drm/nouveau: inform userspace of relaxed kernel subchannel requirements
        Revert "drm/nouveau: inform userspace of new kernel subchannel requirements"
        drm/nouveau: oops, create m2mf for nvd9 too
      e1a7eb08
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze · 464662b9
      Linus Torvalds authored
      Pull arch/microblaze fixes from Michal Simek.
      
      * 'next' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Fix ret_from_fork declaration
        microblaze: Do not use tlb_skip in early_printk
        microblaze: Add missing headers caused by disintegration asm/system.h
        microblaze: Fix stack usage in PAGE_SIZE copy_tofrom_user
        microblaze: Fix tlb_skip variable on noMMU system
        microblaze: Fix __futex_atomic_op macro register usage
      464662b9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 1e649afd
      Linus Torvalds authored
      Pull m68k fixes from Geert Uytterhoeven:
       "Here are a few fixes for the m68k architecture.  Nothing fancy this
        time, just a build fix for the asm/system.h disintegration, and two
        fixes for missing platform checks (one got in during last merge
        window), which can cause crashes in multi-platform kernels."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k/q40: Add missing platform check before registering platform devices
        m68k/mac: Add missing platform check before registering platform devices
        m68k: include asm/cmpxchg.h in our m68k atomic.h
      1e649afd
    • Dave Airlie's avatar
      Merge branch 'drm-intel-fixes' of... · e37acc0f
      Dave Airlie authored
      Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-intel-fixes
      
      From Daniel Vetter:
      
      "A few patches for 3.4, major part is 3 regression fixes:
      - ppgtt broke hibernate on snb/ivb. Somehow our QA claims that it still
       works, which is why this has not been caught earlier.
      - ppgtt flails in combination with dmar. I kinda expected this one :(
      - fence handling bugfix for gen2/3. Iirc this one is about a year old, fix
       curtesy Chris Wilson. I've created an shockingly simple i-g-t test to
       catch this in the future.
      
      Wrt regressions I've just got a report that gmbus (newly enabled again in
      3.4) is a bit noisy. I'm looking into this atm.
      
      Also included are the rc6 enable patches for snb from Eugeni. I wanted to
      include these in the main 3.4 pull but screwed it up. Please hit me. Imo
      these kind of patches really should go in before -rc1, but in thise case
      rc6 has brought us tons of press and guinea pigs^W^W testers and ubuntu is
      already running with it. So I estimate a pretty small chance for this to
      blow up.
      
      And some smaller things:
      - two minor locking snafus
      - server gt2 ivb pciid
      - 2 patches to sanitize the register state left behind by the bios some
       more
      - 2 new quirk entries
      - cs readback trick against missed IRQs from ivb also enabled on snb
      - sprite fix from Jesse"
      
      * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel:
        drm/i915: treat src w & h as fixed point in sprite handling code
        drm/i915: no-lvds quirk on MSI DC500
        drm/i915: Add lock on drm_helper_resume_force_mode
        drm/i915: don't leak struct_mutex lock on ppgtt init failures
        drm/i915: disable ppgtt on snb when dmar is enabled
        drm/i915: add Ivy Bridge GT2 Server entries
        drm/i915: properly clear SSC1 bit in the pch refclock init code
        drm/i915: apply CS reg readback trick against missed IRQ on snb
        drm/i915: quirk away broken OpRegion VBT
        drm/i915: enable plain RC6 on Sandy Bridge by default
        drm/i915: allow to select rc6 modes via kernel parameter
        drm/i915: Mark untiled BLT commands as fenced on gen2/3
        drm/i915: properly restore the ppgtt page directory on resume
        drm/i915: Sanitize BIOS debugging bits from PIPECONF
      e37acc0f
    • Chris Wilson's avatar
      drm: Validate requested virtual size against allocated fb size · 62fb376e
      Chris Wilson authored
      mplayer -vo fbdev tries to create a screen that is twice as tall as the
      allocated framebuffer for "doublebuffering". By default, and all in-tree
      users, only sufficient memory is allocated and mapped to satisfy the
      smallest framebuffer and the virtual size is no larger than the actual.
      For these users, we should therefore reject any userspace request to
      create a screen that requires a buffer larger than the framebuffer
      originally allocated.
      
      References: https://bugs.freedesktop.org/show_bug.cgi?id=38138Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Cc: stable@kernel.org
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      62fb376e