Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 26, 2012
  1. @gregkh

    Linux 3.5.3

    gregkh authored
  2. @bvanassche @gregkh

    IB/srp: Fix a race condition

    bvanassche authored gregkh committed
    commit 2203299 upstream.
    Avoid a crash caused by the scmnd->scsi_done(scmnd) call in
    srp_process_rsp() being invoked with scsi_done == NULL.  This can
    happen if a reply is received during or after a command abort.
    Reported-by: Joseph Glanville <>
    Acked-by: David Dillow <>
    Signed-off-by: Bart Van Assche <>
    Signed-off-by: Roland Dreier <>
    Signed-off-by: Greg Kroah-Hartman <>
  3. @jwessel @gregkh

    pmac_zilog,kdb: Fix console poll hook to return instead of loop

    jwessel authored gregkh committed
    commit 38f8eef upstream.
    kdb <-> kgdb transitioning does not work properly with this UART
    driver because the get character routine loops indefinitely as opposed
    to returning NO_POLL_CHAR per the expectation of the KDB I/O driver
    The symptom is a kernel hang when trying to switch debug modes.
    Signed-off-by: Jason Wessel <>
    Cc: Alan Cox <>
    Signed-off-by: Greg Kroah-Hartman <>
    Signed-off-by: Greg Kroah-Hartman <>
  4. @oritwas @gregkh

    KVM: VMX: Fix KVM_SET_SREGS with big real mode segments

    oritwas authored gregkh committed
    (cherry picked from commit b246dd5)
    For example migration between Westmere and Nehelem hosts, caught in big real mode.
    The code that fixes the segments for real mode guest was moved from enter_rmode
    to vmx_set_segments. enter_rmode calls vmx_set_segments for each segment.
    Signed-off-by: Orit Wasserman <>
    Signed-off-by: Avi Kivity <>
    Signed-off-by: Greg Kroah-Hartman <>
  5. @gregkh

    KVM: x86 emulator: fix byte-sized MOVZX/MOVSX

    Avi Kivity authored gregkh committed
    (cherry picked from commit 361cad2)
    Commit 2adb5ad removed ByteOp from MOVZX/MOVSX, replacing them by
    SrcMem8, but neglected to fix the dependency in the emulation code
    on ByteOp.  This caused the instruction not to have any effect in
    some circumstances.
    Fix by replacing the check for ByteOp with the equivalent src.op_bytes == 1.
    Signed-off-by: Avi Kivity <>
    Signed-off-by: Greg Kroah-Hartman <>
  6. @gregkh

    KVM: VMX: Fix ds/es corruption on i386 with preemption

    Avi Kivity authored gregkh committed
    (cherry picked from commit aa67f60)
    Commit b2da15a ("KVM: VMX: Optimize %ds, %es reload") broke i386
    in the following scenario:
      (ds.rpl, es.rpl cleared by hardware)
        push ds, es  # pushes bad ds, es
              reload ds, es (with __USER_DS)
        pop ds, es  # of other thread's stack
      # other thread runs
        push ds, es
        schedule  # back in vcpu thread
        pop ds, es  # now with rpl=0
      iret  # clears ds, es due to mismatched rpl
    (instead of resume_userspace, we might return with SYSEXIT and then
    take an exception; when the exception IRETs we end up with cleared
    ds, es)
    Fix by avoiding the optimization on i386 and reloading ds, es on the
    lightweight exit path.
    Reported-by: Chris Clayron <>
    Signed-off-by: Avi Kivity <>
    Signed-off-by: Marcelo Tosatti <>
    Signed-off-by: Greg Kroah-Hartman <>
  7. @bfrogers @gregkh

    KVM: x86: apply kvmclock offset to guest wall clock time

    bfrogers authored gregkh committed
    (cherry picked from commit 4b64866)
    When a guest migrates to a new host, the system time difference from the
    previous host is used in the updates to the kvmclock system time visible
    to the guest, resulting in a continuation of correct kvmclock based guest
    The wall clock component of the kvmclock provided time is currently not
    updated with this same time offset. Since the Linux guest caches the
    wall clock based time, this discrepency is not noticed until the guest is
    rebooted. After reboot the guest's time calculations are off.
    This patch adjusts the wall clock by the kvmclock_offset, resulting in
    correct guest time after a reboot.
    Cc: Zachary Amsden <>
    Signed-off-by: Bruce Rogers <>
    Signed-off-by: Marcelo Tosatti <>
    Signed-off-by: Greg Kroah-Hartman <>
  8. @gregkh

    KVM: PIC: call ack notifiers for irqs that are dropped form irr

    Gleb Natapov authored gregkh committed
    (cherry picked from commit aea218f)
    After commit 242ec97 PIT interrupts are no longer delivered after
    PIC reset. It happens because PIT injects interrupt only if previous one
    was acked, but since on PIC reset it is dropped from irr it will never
    be delivered and hence acknowledged. Fix that by calling ack notifier on
    PIC reset.
    Signed-off-by: Gleb Natapov <>
    Signed-off-by: Avi Kivity <>
    Signed-off-by: Greg Kroah-Hartman <>
  9. @doya @gregkh

    rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb.

    doya authored gregkh committed
    commit a769f95 upstream.
    This is a RT3070 based device.
    Signed-off-by: Jeongdo Son <>
    Signed-off-by: John W. Linville <>
    Signed-off-by: Greg Kroah-Hartman <>
  10. @mgrzeschik @gregkh

    usb: gadget: u_ether: fix kworker 100% CPU issue with still used inte…

    mgrzeschik authored gregkh committed
    …rfaces in eth_stop
    commit b1b552a upstream.
    This patch fixes an issue introduced by patch:
        72c973d usb: gadget: add usb_endpoint_descriptor to struct usb_ep
    Without this patch we see a kworker taking 100% CPU, after this sequence:
    - Connect gadget to a windows host
    - load g_ether
    - ifconfig up <ip>; ifconfig down; ifconfig up
    - ping <windows host>
    The "ifconfig down" results in calling eth_stop(), which will call
    usb_ep_disable() and, if the carrier is still ok, usb_ep_enable():
             if (netif_carrier_ok(net)) {
    The ep should stay enabled, but will not, as ep_disable set the desc
    pointer to NULL, therefore the subsequent ep_enable will fail. This leads
    to permanent rescheduling of the eth_work() worker as usb_ep_queue()
    (called by the worker) will fail due to the unconfigured endpoint.
    We fix this issue by saving the ep descriptors and re-assign them before
    Cc: Tatyana Brokhman <>
    Signed-off-by: Michael Grzeschik <>
    Signed-off-by: Marc Kleine-Budde <>
    Signed-off-by: Greg Kroah-Hartman <>
  11. @gregkh

    usb: serial: mos7840: Fixup mos7840_chars_in_buffer()

    Mark Ferrell authored gregkh committed
    commit 5c263b9 upstream.
     * Use the buffer content length as opposed to the total buffer size.  This can
       be a real problem when using the mos7840 as a usb serial-console as all
       kernel output is truncated during boot.
    Signed-off-by: Mark Ferrell <>
    Signed-off-by: Greg Kroah-Hartman <>
  12. @ozancaglayan @gregkh

    USB: ftdi_sio: Add VID/PID for Kondo Serial USB

    ozancaglayan authored gregkh committed
    commit 7724a1e upstream.
    This adds VID/PID for Kondo Kagaku Co. Ltd. Serial USB Adapter
    Tested by controlling an RCB3 board using libRCB3.
    Signed-off-by: Ozan Çağlayan <>
    Signed-off-by: Greg Kroah-Hartman <>
  13. @bmork @gregkh

    USB: option: add ZTE K5006-Z

    bmork authored gregkh committed
    commit f1b5c99 upstream.
    The ZTE (Vodafone) K5006-Z use the following
    interface layout:
    00 DIAG
    01 secondary
    02 modem
    03 networkcard
    04 storage
    Ignoring interface #3 which is handled by the qmi_wwan
    Signed-off-by: Bjørn Mork <>
    Cc: Thomas Schäfer <>
    Signed-off-by: Greg Kroah-Hartman <>
  14. @gregkh

    USB: support the new interfaces of Huawei Data Card devices in option…

    fangxiaozhi authored gregkh committed
    … driver
    commit ee6f827 upstream.
    In this patch, we add new declarations into option.c to support the new
    interfaces of Huawei Data Card devices. And at the same time, remove the
    redundant declarations from option.c.
    Signed-off-by: fangxiaozhi <>
    Signed-off-by: Greg Kroah-Hartman <>
  15. @gregkh


    Gustavo Padovan authored gregkh committed
    commit d81a5d1 upstream.
    A lot of Broadcom Bluetooth devices provides vendor specific interface
    class and we are getting flooded by patches adding new device support.
    This change will help us enable support for any other Broadcom with vendor
    specific device that arrives in the future.
    Only the product id changes for those devices, so this macro would be
    perfect for us:
    { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01) }
    Signed-off-by: Marcel Holtmann <>
    Signed-off-by: Gustavo Padovan <>
    Acked-by: Henrik Rydberg <>
    Signed-off-by: Greg Kroah-Hartman <>
  16. @ian-abbott @gregkh

    staging: comedi: Fix reversed test in comedi_device_attach()

    ian-abbott authored gregkh committed
    commit 80eb7a5 upstream.
    Commit 3902a37 (staging: comedi:
    refactor comedi_device_attach() a bit) by yours truly introduced an
    inverted logic bug in comedi_device_attach() for the case where the
    driver expects the device to be configured by driver name rather than
    board name.  The result of a strcmp() is being tested incorrectly.  Fix
    Thanks to Stephen N Chivers for discovering the bug and suggesting the
    Signed-off-by: Ian Abbott <>
    Signed-off-by: Greg Kroah-Hartman <>
  17. @jimc @gregkh

    drivers-core: make structured logging play nice with dynamic-debug

    jimc authored gregkh committed
    commit af7f215 upstream.
    commit c4e00da changed __dev_printk
    in a way that broke dynamic-debug's ability to control the dynamic
    prefix of dev_dbg(dev,..), but not dev_dbg(NULL,..) or pr_debug(..),
    which is why it wasnt noticed sooner.
    When dev==NULL, __dev_printk() just calls printk(), which just works.
    But otherwise, it assumed that level was always a string like "<L>"
    and just plucked out the 'L', ignoring the rest.  However,
    dynamic_emit_prefix() adds "[tid] module:func:line:" to the string,
    those additions all got lost.
    Signed-off-by: Jim Cromie <>
    Acked-by: Jason Baron <>
    Cc: Kay Sievers <>
    Signed-off-by: Greg Kroah-Hartman <>
  18. @gregkh

    xhci: Fix bug after deq ptr set to link TRB.

    Sarah Sharp authored gregkh committed
    commit 50d0206 upstream.
    This patch fixes a particularly nasty bug that was revealed by the ring
    expansion patches.  The bug has been present since the very beginning of
    the xHCI driver history, and could have caused general protection faults
    from bad memory accesses.
    The first thing to note is that a Set TR Dequeue Pointer command can
    move the dequeue pointer to a link TRB, if the canceled or stalled
    transfer TD ended just before a link TRB.  The function to increment the
    dequeue pointer, inc_deq, was written before cancellation and stall
    support was added.  It assumed that the dequeue pointer could never
    point to a link TRB.  It would unconditionally increment the dequeue
    pointer at the start of the function, check if the pointer was now on a
    link TRB, and move it to the top of the next segment if so.
    This means that if a Set TR Dequeue Point command moved the dequeue
    pointer to a link TRB, a subsequent call to inc_deq() would move the
    pointer off the segment and into la-la-land.  It would then read from
    that memory to determine if it was a link TRB.  Other functions would
    often call inc_deq() until the dequeue pointer matched some other
    pointer, which means this function would quite happily read all of
    system memory before wrapping around to the right pointer value.
    Often, there would be another endpoint segment from a different ring
    allocated from the same DMA pool, which would be contiguous to the
    segment inc_deq just stepped off of.  inc_deq would eventually find the
    link TRB in that segment, and blindly move the dequeue pointer back to
    the top of the correct ring segment.
    The only reason the original code worked at all is because there was
    only one ring segment.  With the ring expansion patches, the dequeue
    pointer would eventually wrap into place, but the dequeue segment would
    be out-of-sync.  On the second TD after the dequeue pointer was moved to
    a link TRB, trb_in_td() would fail (because the dequeue pointer and
    dequeue segment were out-of-sync), and this message would appear:
    ERROR Transfer event TRB DMA ptr not part of current TD
    This fixes bugzilla entry 4333 (option-based modem unhappy on USB 3.0
    port: "Transfer event TRB DMA ptr not part of current TD", "rejecting
    I/O to offline device"),

    and possibly other general protection fault bugs as well.
    This patch should be backported to kernels as old as 2.6.31.  A separate
    patch will be created for kernels older than 3.4, since inc_deq was
    modified in 3.4 and this patch will not apply.
    Signed-off-by: Sarah Sharp <>
    Tested-by: James Ettle <>
    Tested-by: Matthew Hall <>
    Signed-off-by: Greg Kroah-Hartman <>
  19. @gregkh

    xhci: Switch PPT ports to EHCI on shutdown.

    Sarah Sharp authored gregkh committed
    commit e95829f upstream.
    The Intel desktop boards DH77EB and DH77DF have a hardware issue that
    can be worked around by BIOS.  If the USB ports are switched to xHCI on
    shutdown, the xHCI host will send a spurious interrupt, which will wake
    the system.  Some BIOS will work around this, but not all.
    The bug can be avoided if the USB ports are switched back to EHCI on
    shutdown.  The Intel Windows driver switches the ports back to EHCI, so
    change the Linux xHCI driver to do the same.
    Unfortunately, we can't tell the two effected boards apart from other
    working motherboards, because the vendors will change the DMI strings
    for the DH77EB and DH77DF boards to their own custom names.  One example
    is Compulab's mini-desktop, the Intense-PC.  Instead, key off the
    Panther Point xHCI host PCI vendor and device ID, and switch the ports
    over for all PPT xHCI hosts.
    The only impact this will have on non-effected boards is to add a couple
    hundred milliseconds delay on boot when the BIOS has to switch the ports
    over from EHCI to xHCI.
    This patch should be backported to kernels as old as 3.0, that contain
    the commit 69e848c "Intel xhci: Support
    EHCI/xHCI port switching."
    Signed-off-by: Sarah Sharp <>
    Reported-by: Denis Turischev <>
    Tested-by: Denis Turischev <>
    Signed-off-by: Greg Kroah-Hartman <>
  20. @gregkh

    xhci: Increase reset timeout for Renesas 720201 host.

    Sarah Sharp authored gregkh committed
    commit 22ceac1 upstream.
    The NEC/Renesas 720201 xHCI host controller does not complete its reset
    within 250 milliseconds.  In fact, it takes about 9 seconds to reset the
    host controller, and 1 second for the host to be ready for doorbell
    rings.  Extend the reset and CNR polling timeout to 10 seconds each.
    This patch should be backported to kernels as old as 2.6.31, that
    contain the commit 66d4ead "USB: xhci:
    BIOS handoff and HW initialization."
    Signed-off-by: Sarah Sharp <>
    Reported-by: Edwin Klein Mentink <>
    Signed-off-by: Greg Kroah-Hartman <>
  21. @gregkh

    xhci: Add Etron XHCI_TRUST_TX_LENGTH quirk.

    Sarah Sharp authored gregkh committed
    commit 5cb7df2 upstream.
    Gary reports that with recent kernels, he notices more xHCI driver
    xhci_hcd 0000:03:00.0: WARN Successful completion on short TX: needs XHCI_TRUST_TX_LENGTH quirk?
    We think his Etron xHCI host controller may have the same buggy behavior
    as the Fresco Logic xHCI host.  When a short transfer is received, the
    host will mark the transfer as successfully completed when it should be
    marking it with a short completion.
    Fix this by turning on the XHCI_TRUST_TX_LENGTH quirk when the Etron
    host is discovered.  Note that Gary has revision 1, but if Etron fixes
    this bug in future revisions, the quirk will have no effect.
    This patch should be backported to kernels as old as 2.6.36, that
    contain a backported version of commit
    1530bbc "xhci: Add new short TX quirk
    for Fresco Logic host."
    Signed-off-by: Sarah Sharp <>
    Reported-by: Gary E. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>
  22. @tytso @gregkh

    ext4: fix kernel BUG on large-scale rm -rf commands

    tytso authored gregkh committed
    commit 89a4e48 upstream.
    Commit 968dee7: "ext4: fix hole punch failure when depth is greater
    than 0" introduced a regression in v3.5.1/v3.6-rc1 which caused kernel
    crashes when users ran run "rm -rf" on large directory hierarchy on
    ext4 filesystems on RAID devices:
        BUG: unable to handle kernel NULL pointer dereference at 0000000000000028
        Process rm (pid: 18229, threadinfo ffff8801276bc000, task ffff880123631710)
        Call Trace:
         [<ffffffff81236483>] ? __ext4_handle_dirty_metadata+0x83/0x110
         [<ffffffff812353d3>] ext4_ext_truncate+0x193/0x1d0
         [<ffffffff8120a8cf>] ? ext4_mark_inode_dirty+0x7f/0x1f0
         [<ffffffff81207e05>] ext4_truncate+0xf5/0x100
         [<ffffffff8120cd51>] ext4_evict_inode+0x461/0x490
         [<ffffffff811a1312>] evict+0xa2/0x1a0
         [<ffffffff811a1513>] iput+0x103/0x1f0
         [<ffffffff81196d84>] do_unlinkat+0x154/0x1c0
         [<ffffffff8118cc3a>] ? sys_newfstatat+0x2a/0x40
         [<ffffffff81197b0b>] sys_unlinkat+0x1b/0x50
         [<ffffffff816135e9>] system_call_fastpath+0x16/0x1b
        Code: 8b 4d 20 0f b7 41 02 48 8d 04 40 48 8d 04 81 49 89 45 18 0f b7 49 02 48 83 c1 01 49 89 4d 00 e9 ae f8 ff ff 0f 1f 00 49 8b 45 28 <48> 8b 40 28 49 89 45 20 e9 85 f8 ff ff 0f 1f 80 00 00 00
        RIP  [<ffffffff81233164>] ext4_ext_remove_space+0xa34/0xdf0
    This could be reproduced as follows:
    The problem in commit 968dee7 was that caused the variable 'i' to
    be left uninitialized if the truncate required more space than was
    available in the journal.  This resulted in the function
    ext4_ext_truncate_extend_restart() returning -EAGAIN, which caused
    ext4_ext_remove_space() to restart the truncate operation after
    starting a new jbd2 handle.
    Reported-by: Maciej Żenczykowski <>
    Reported-by: Marti Raudsepp <>
    Tested-by: Fengguang Wu <>
    Signed-off-by: "Theodore Ts'o" <>
    Signed-off-by: Greg Kroah-Hartman <>
  23. @tytso @gregkh

    ext4: fix long mount times on very big file systems

    tytso authored gregkh committed
    commit 0548bbb upstream.
    Commit 8aeb00f: "ext4: fix overhead calculation used by
    ext4_statfs()" introduced a O(n**2) calculation which makes very large
    file systems take forever to mount.  Fix this with an optimization for
    non-bigalloc file systems.  (For bigalloc file systems the overhead
    needs to be set in the the superblock.)
    Signed-off-by: "Theodore Ts'o" <>
    Signed-off-by: Greg Kroah-Hartman <>
  24. @tytso @gregkh

    ext4: don't call ext4_error while block group is locked

    tytso authored gregkh committed
    commit 7a4c5de upstream.
    While in ext4_validate_block_bitmap(), if an block allocation bitmap
    is found to be invalid, we call ext4_error() while the block group is
    still locked.  This causes ext4_commit_super() to call a function
    which might sleep while in an atomic context.
    There's no need to keep the block group locked at this point, so hoist
    the ext4_error() call up to ext4_validate_block_bitmap() and release
    the block group spinlock before calling ext4_error().
    The reported stack trace can be found at:

    Reported-by: Dave Jones <>
    Signed-off-by: "Theodore Ts'o" <>
    Signed-off-by: Greg Kroah-Hartman <>
  25. @tytso @gregkh

    ext4: avoid kmemcheck complaint from reading uninitialized memory

    tytso authored gregkh committed
    commit 7e731bc upstream.
    Commit 03179fe introduced a kmemcheck complaint in
    ext4_da_get_block_prep() because we save and restore
    ei->i_da_metadata_calc_last_lblock even though it is left
    uninitialized in the case where i_da_metadata_calc_len is zero.
    This doesn't hurt anything, but silencing the kmemcheck complaint
    makes it easier for people to find real bugs.
    (which is marked as a regression).
    Signed-off-by: "Theodore Ts'o" <>
    Signed-off-by: Greg Kroah-Hartman <>
  26. @tytso @gregkh

    ext4: make sure the journal sb is written in ext4_clear_journal_err()

    tytso authored gregkh committed
    commit d796c52 upstream.
    After we transfer set the EXT4_ERROR_FS bit in the file system
    superblock, it's not enough to call jbd2_journal_clear_err() to clear
    the error indication from journal superblock --- we need to call
    jbd2_journal_update_sb_errno() as well.  Otherwise, when the root file
    system is mounted read-only, the journal is replayed, and the error
    indicator is transferred to the superblock --- but the s_errno field
    in the jbd2 superblock is left set (since although we cleared it in
    memory, we never flushed it out to disk).
    This can end up confusing e2fsck.  We should make e2fsck more robust
    in this case, but the kernel shouldn't be leaving things in this
    confused state, either.
    Signed-off-by: "Theodore Ts'o" <>
    Signed-off-by: Greg Kroah-Hartman <>
  27. @kees @gregkh

    Yama: access task_struct->comm directly

    kees authored gregkh committed
    commit 7612bfe upstream.
    The core ptrace access checking routine holds a task lock, and when
    reporting a failure, Yama takes a separate task lock. To avoid a
    potential deadlock with two ptracers taking the opposite locks, do not
    use get_task_comm() and just use ->comm directly since accuracy is not
    important for the report.
    Reported-by: Fengguang Wu <>
    Suggested-by: Oleg Nesterov <>
    Signed-off-by: Kees Cook <>
    Acked-by: John Johansen <>
    Signed-off-by: James Morris <>
    Signed-off-by: Greg Kroah-Hartman <>
  28. @marekolsak @gregkh

    drm/radeon/kms: allow "invalid" DB formats as a means to disable DB

    marekolsak authored gregkh committed
    commit 0f457e4 upstream.
    Signed-off-by: Marek Olšák <>
    Reviewed-by: Alex Deucher <>
    Signed-off-by: Dave Airlie <>
    Signed-off-by: Greg Kroah-Hartman <>
  29. @gregkh

    drm/radeon: fix bank tiling parameters on evergreen

    Alex Deucher authored gregkh committed
    commit c8d15ed upstream.
    Handle the 16 bank case.
    Signed-off-by: Alex Deucher <>
    Signed-off-by: Greg Kroah-Hartman <>
  30. @gregkh

    drm/radeon: fix bank tiling parameters on SI

    Christian König authored gregkh committed
    commit dca571a upstream.
    The sixteen bank case wasn't handled here, leading to GPU
    crashes because of userspace miscalculation.
    Signed-off-by: Christian König <>
    Signed-off-by: Alex Deucher <>
    Signed-off-by: Greg Kroah-Hartman <>
  31. @gregkh

    drm/radeon: fix bank tiling parameters on cayman

    Alex Deucher authored gregkh committed
    commit 5b23c90 upstream.
    Handle the 16 bank case.
    Signed-off-by: Alex Deucher <>
    Signed-off-by: Greg Kroah-Hartman <>
  32. @gregkh

    drm/radeon: add some new SI pci ids

    Alex Deucher authored gregkh committed
    commit 2f29200 upstream.
    Signed-off-by: Alex Deucher <>
    Signed-off-by: Greg Kroah-Hartman <>
  33. @gregkh

    drm/i915: make rc6 in sysfs functions conditional

    Hunt Xu authored gregkh committed
    commit 5ab3633 upstream.
    Commit 0136db5 merges rc6 information
    into the power group. However, when compiled with CONFIG_PM not set,
    modprobing i915 would taint since power_group_name is defined as NULL.
    This patch makes these rc6 in sysfs functions conditional upon the
    definition of the CONFIG_PM macro to avoid the above-mentioned problem.
    Tested-by: Kris Karas <>
    Signed-off-by: Hunt Xu <>
    Signed-off-by: Daniel Vetter <>
    Signed-off-by: Greg Kroah-Hartman <>
  34. @gregkh

    drm/radeon: do not reenable crtc after moving vram start address

    Jerome Glisse authored gregkh committed
    commit 81ee8fb upstream.
    It seems we can not update the crtc scanout address. After disabling
    crtc, update to base address do not take effect after crtc being
    reenable leading to at least frame being scanout from the old crtc
    base address. Disabling crtc display request lead to same behavior.
    So after changing the vram address if we don't keep crtc disabled
    we will have the GPU trying to read some random system memory address
    with some iommu this will broke the crtc engine and will lead to
    broken display and iommu error message.
    So to avoid this, disable crtc. For flicker less boot we will need
    to avoid moving the vram start address.
    This patch should also fix :
    Signed-off-by: Jerome Glisse <>
    Signed-off-by: Greg Kroah-Hartman <>
  35. @gregkh

    drm/radeon: properly handle crtc powergating

    Alex Deucher authored gregkh committed
    commit 6c0ae2a upstream.
    Need to make sure the crtc is gated on before modesetting.
    Explicitly gate the crtc on in prepare() and set a flag
    so that the dpms functions don't gate it off during
    mode set.
    Noticed by sylware on IRC.
    Signed-off-by: Alex Deucher <>
    Signed-off-by: Greg Kroah-Hartman <>
Something went wrong with that request. Please try again.