08 Dec, 2014

2 commits


07 Dec, 2014

2 commits


06 Dec, 2014

3 commits


05 Dec, 2014

8 commits

  • Pull drm intel fixes from Dave Airlie:
    "Two intel stable fixes, that should be it from me for this round"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/i915: Unlock panel even when LVDS is disabled
    drm/i915: More cautious with pch fifo underruns

    Linus Torvalds
     
  • Pull ACPI backlight fix from Rafael Wysocki:
    "This is a simple fix for an ACPI backlight regression introduced by a
    recent commit that overlooked a corner case which should have been
    taken into account"

    * tag 'pm+acpi-3.18-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: update condition to check if device is in _DOD list

    Linus Torvalds
     
  • Silence some pch fifo underrun reports and panel locking backtraces,
    both cc: stable.

    * tag 'drm-intel-fixes-2014-12-04' of git://anongit.freedesktop.org/drm-intel:
    drm/i915: Unlock panel even when LVDS is disabled
    drm/i915: More cautious with pch fifo underruns

    Dave Airlie
     
  • Pull media fixes from Mauro Carvalho Chehab:
    "A core fix and some driver fixes:
    - regression fix in Remote Controller core affecting RC6 protocol
    handling
    - fix video buffer handling in cx23885
    - race fix in solo6x10
    - fix image selection in smiapp
    - fix reported payload size on s2255drv
    - two updates for MAINTAINERS file"

    * tag 'media/v3.18-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] rc-core: fix toggle handling in the rc6 decoder
    MAINTAINERS: Update mchehab's addresses
    [media] cx23885: use sg = sg_next(sg) instead of sg++
    [media] s2255drv: fix payload size for JPG, MJPEG
    [media] Update MAINTAINERS for solo6x10
    [media] solo6x10: fix a race in IRQ handler
    [media] smiapp: Only some selection targets are settable

    Linus Torvalds
     
  • A typo "header=y" was introduced by commit 7071cf7fc435 ("uapi: add
    missing network related headers to kbuild").

    Signed-off-by: Masahiro Yamada
    Cc: Stephen Hemminger
    Cc: David Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • Cadence I2C controller has bug wherein it generates invalid read transactions
    after timeout in master receiver mode. This driver does not use the HW
    timeout and this interrupt is disabled but the feature itself cannot be
    disabled. Hence, this patch writes the maximum value (0xFF) to this register.
    This is one of the workarounds to this bug and it will not avoid the issue
    completely but reduces the chances of error.

    Signed-off-by: Vishnu Motghare
    Signed-off-by: Harini Katakam
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Vishnu Motghare
     
  • According to I2C specification the NACK should be handled as follows:
    "When SDA remains HIGH during this ninth clock pulse, this is defined as the Not
    Acknowledge signal. The master can then generate either a STOP condition to
    abort the transfer, or a repeated START condition to start a new transfer."
    [I2C spec Rev. 6, 3.1.6: http://www.nxp.com/documents/user_manual/UM10204.pdf]

    Currently the Davinci i2c driver interrupts the transfer on receipt of a
    NACK but fails to send a STOP in some situations and so makes the bus
    stuck until next I2C IP reset (idle/enable).

    For example, the issue will happen during SMBus read transfer which
    consists from two i2c messages write command/address and read data:

    S Slave Address Wr A Command Code A Sr Slave Address Rd A D1..Dn A P

    The I2C client device will send NACK if it can't recognize "Command Code"
    and it's expected from I2C master to generate STP in this case.
    But now, Davinci i2C driver will just exit with -EREMOTEIO and STP will
    not be generated.

    Hence, fix it by generating Stop condition (STP) always when NACK is received.

    This patch fixes Davinci I2C in the same way it was done for OMAP I2C
    commit cda2109a26eb ("i2c: omap: query STP always when NACK is received").

    Reviewed-by: Uwe Kleine-König
    Reported-by: Hein Tibosch
    Signed-off-by: Grygorii Strashko
    Signed-off-by: Wolfram Sang
    Cc: stable@kernel.org

    Grygorii Strashko
     
  • Just like 0x1600 which got blacklisted by 66a7cbc303f4 ("ahci: disable
    MSI instead of NCQ on Samsung pci-e SSDs on macbooks"), 0xa800 chokes
    on NCQ commands if MSI is enabled. Disable MSI.

    Signed-off-by: Tejun Heo
    Reported-by: Dominik Mierzejewski
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=89171
    Cc: stable@vger.kernel.org

    Tejun Heo
     

04 Dec, 2014

16 commits

  • It appears that some SCHEDULE_USER (asm for schedule_user) callers
    in arch/x86/kernel/entry_64.S are called from RCU kernel context,
    and schedule_user will return in RCU user context. This causes RCU
    warnings and possible failures.

    This is intended to be a minimal fix suitable for 3.18.

    Reported-and-tested-by: Dave Jones
    Cc: Oleg Nesterov
    Cc: Frédéric Weisbecker
    Acked-by: Paul E. McKenney
    Signed-off-by: Andy Lutomirski
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     
  • Pull i2c bugfixes from Wolfram Sang:
    "A few driver bugfixes for 3.18"

    * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
    i2c: omap: fix i207 errata handling
    i2c: designware: prevent early stop on TX FIFO empty
    i2c: omap: fix NACK and Arbitration Lost irq handling

    Linus Torvalds
     
  • Pull PCI fix from Bjorn Helgaas:
    "This fixes a Tegra20 regression that we introduced during the v3.18
    merge window"

    * tag 'pci-v3.18-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: tegra: Use physical range for I/O mapping

    Linus Torvalds
     
  • Pull devicetree bugfix from Grant Likely:
    "One more bug fix for v3.18. I debated whether or not to send you this
    merge request because we're at such a late rc. The bug isn't critical
    in that there is only one system known to be affected and the patch is
    easy to backport. The codepath is used by pretty much every DT based
    system, so there is risk a of regression (it /should/ be safe, but
    I've been bitten by stuff that should be safe before). I've had it in
    linux-next for a week and haven't received any complaints.

    I think it probably should just be merged right away rather than
    waiting for the merge window and backporting. It does fix a real bug
    and the code is theoretically safer after the change. I can't think
    of any situation where it would be dangerous to reserve the DT memory
    an extra time.

    Summary from tag:

    Single bugfix for boot failure seen in the wild. The memory reserve
    code tries to be clever about reserving the FDT, but it should just
    go ahead and reserve it unconditionally to avoid the problem of
    partial overlap described in the patch"

    * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
    of/fdt: memblock_reserve /memreserve/ regions in the case of partial overlap

    Linus Torvalds
     
  • Pull block core regression fix from Jens Axboe:
    "Single fix for a regression introduced in this development cycle,
    where dm on top of dif/dix is broken. From Darrick Wong"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    block: fix regression where bio_integrity_process uses wrong bio_vec iterator

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

    So nouveau had a few regression introduced, Ben and Maarten finally
    tracked down the one that was causing problems on my MacBookPro, also
    nvidia gave some info on the an engine we were using incorrectly, so
    disable our use of it, and one regresion with pci hotplug affecting
    optimus users.

    Radeon has an oops fixs, sync fix, and one workaround to avoid broken
    functionality on 32-bit x86, this needs better root causing and a
    better fix, but the bandaid is a lot safer at this point"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6
    drm/radeon: Ignore RADEON_GEM_GTT_WC on 32-bit x86
    drm/radeon: sync all BOs involved in a CS v2
    nouveau: move the hotplug ignore to correct place.
    drm/nouveau/gf116: remove copy1 engine
    drm/nouveau: prevent stale fence->channel pointers, and protect with rcu
    drm/nouveau/fifo/g84-: ack non-stall interrupt before handling it

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fill in ethtool link parameters for all link types in cxgb4, from
    Hariprasad Shenai.

    2) Fix probe regressions in stmmac driver, from Huacai Chen.

    3) Network namespace leaks on errirs in rtnetlink, from Nicolas
    Dichtel.

    4) Remove erroneous BUG check which can actually trigger legitimately,
    in xen-netfront. From Seth Forshee.

    5) Validate length of IFLA_BOND_ARP_IP_TARGET netlink attributes, from
    Thomas Grag.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    cxgb4: Fill in supported link mode for SFP modules
    xen-netfront: Remove BUGs on paged skb data which crosses a page boundary
    sh_eth: Fix sleeping function called from invalid context
    stmmac: platform: Move plat_dat checking earlier
    sh_eth: Fix skb alloc size and alignment adjust rule.
    rtnetlink: release net refcnt on error in do_setlink()
    bond: Check length of IFLA_BOND_ARP_IP_TARGET attributes

    Linus Torvalds
     
  • Pull keyring/nfs fixes from James Morris:
    "From David Howells:

    The first one fixes the handling of maximum buffer size for key
    descriptions, fixing the size at 4095 + NUL char rather than whatever
    PAGE_SIZE happens to be and permits you to read back the full
    description without it getting clipped because some extra information
    got prepended.

    The second and third fix a bug in NFS idmapper handling whereby a key
    representing a mapping between an id and a name expires and causing
    EKEYEXPIRED to be seen internally in NFS (which prevents the mapping
    from happening) rather than re-looking up the mapping"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    KEYS: request_key() should reget expired keys rather than give EKEYEXPIRED
    KEYS: Simplify KEYRING_SEARCH_{NO,DO}_STATE_CHECK flags
    KEYS: Fix the size of the key description passed to/from userspace

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "10 fixes"

    * emailed patches from Andrew Morton :
    slab: fix nodeid bounds check for non-contiguous node IDs
    lib/genalloc.c: export devm_gen_pool_create() for modules
    mm: fix anon_vma_clone() error treatment
    mm: fix swapoff hang after page migration and fork
    fat: fix oops on corrupted vfat fs
    ipc/sem.c: fully initialize sem_array before making it visible
    drivers/input/evdev.c: don't kfree() a vmalloc address
    mm/vmpressure.c: fix race in vmpressure_work_fn()
    mm: frontswap: invalidate expired data on a dup-store failure
    mm: do not overwrite reserved pages counter at show_mem()

    Linus Torvalds
     
  • The bounds check for nodeid in ____cache_alloc_node gives false
    positives on machines where the node IDs are not contiguous, leading to
    a panic at boot time. For example, on a POWER8 machine the node IDs are
    typically 0, 1, 16 and 17. This means that num_online_nodes() returns
    4, so when ____cache_alloc_node is called with nodeid = 16 the VM_BUG_ON
    triggers, like this:

    kernel BUG at /home/paulus/kernel/kvm/mm/slab.c:3079!
    Call Trace:
    .____cache_alloc_node+0x5c/0x270 (unreliable)
    .kmem_cache_alloc_node_trace+0xdc/0x360
    .init_list+0x3c/0x128
    .kmem_cache_init+0x1dc/0x258
    .start_kernel+0x2a0/0x568
    start_here_common+0x20/0xa8

    To fix this, we instead compare the nodeid with MAX_NUMNODES, and
    additionally make sure it isn't negative (since nodeid is an int). The
    check is there mainly to protect the array dereference in the get_node()
    call in the next line, and the array being dereferenced is of size
    MAX_NUMNODES. If the nodeid is in range but invalid (for example if the
    node is off-line), the BUG_ON in the next line will catch that.

    Fixes: 14e50c6a9bc2 ("mm: slab: Verify the nodeid passed to ____cache_alloc_node")
    Signed-off-by: Paul Mackerras
    Reviewed-by: Yasuaki Ishimatsu
    Reviewed-by: Pekka Enberg
    Acked-by: David Rientjes
    Cc: Christoph Lameter
    Cc: Joonsoo Kim
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • Modules can use this function for creating pool.

    Signed-off-by: Michal Simek
    Acked-by: Lad, Prabhakar
    Cc: Laura Abbott
    Cc: Olof Johansson
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Vladimir Zapolskiy
    Cc: Philipp Zabel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Simek
     
  • Andrew Morton noticed that the error return from anon_vma_clone() was
    being dropped and replaced with -ENOMEM (which is not itself a bug
    because the only error return value from anon_vma_clone() is -ENOMEM).

    I did an audit of callers of anon_vma_clone() and discovered an actual
    bug where the error return was being lost. In __split_vma(), between
    Linux 3.11 and 3.12 the code was changed so the err variable is used
    before the call to anon_vma_clone() and the default initial value of
    -ENOMEM is overwritten. So a failure of anon_vma_clone() will return
    success since err at this point is now zero.

    Below is a patch which fixes this bug and also propagates the error
    return value from anon_vma_clone() in all cases.

    Fixes: ef0855d334e1 ("mm: mempolicy: turn vma_set_policy() into vma_dup_policy()")
    Signed-off-by: Daniel Forrest
    Reviewed-by: Michal Hocko
    Cc: Konstantin Khlebnikov
    Cc: Andrea Arcangeli
    Cc: Rik van Riel
    Cc: Tim Hartrick
    Cc: Hugh Dickins
    Cc: Michel Lespinasse
    Cc: Vlastimil Babka
    Cc: [3.12+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Forrest
     
  • I've been seeing swapoff hangs in recent testing: it's cycling around
    trying unsuccessfully to find an mm for some remaining pages of swap.

    I have been exercising swap and page migration more heavily recently,
    and now notice a long-standing error in copy_one_pte(): it's trying to
    add dst_mm to swapoff's mmlist when it finds a swap entry, but is doing
    so even when it's a migration entry or an hwpoison entry.

    Which wouldn't matter much, except it adds dst_mm next to src_mm,
    assuming src_mm is already on the mmlist: which may not be so. Then if
    pages are later swapped out from dst_mm, swapoff won't be able to find
    where to replace them.

    There's already a !non_swap_entry() test for stats: move that up before
    the swap_duplicate() and the addition to mmlist.

    Signed-off-by: Hugh Dickins
    Cc: Kelley Nielsen
    Cc: [2.6.18+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hugh Dickins
     
  • a) don't bother with ->d_time for positives - we only check it for
    negatives anyway.

    b) make sure to set it at unlink and rmdir time - at *that* point
    soon-to-be negative dentry matches then-current directory contents

    c) don't go into renaming of old alias in vfat_lookup() unless it
    has the same parent (which it will, unless we are seeing corrupted
    image)

    [hirofumi@mail.parknet.co.jp: make change minimum, don't call d_move() for dir]
    Signed-off-by: Al Viro
    Signed-off-by: OGAWA Hirofumi
    Cc: [3.17.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • ipc_addid() makes a new ipc identifier visible to everyone. New objects
    start as locked, so that the caller can complete the initialization
    after the call. Within struct sem_array, at least sma->sem_base and
    sma->sem_nsems are accessed without any locks, therefore this approach
    doesn't work.

    Thus: Move the ipc_addid() to the end of the initialization.

    Signed-off-by: Manfred Spraul
    Reported-by: Rik van Riel
    Acked-by: Rik van Riel
    Acked-by: Davidlohr Bueso
    Acked-by: Rafael Aquini
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Manfred Spraul
     
  • If kzalloc() failed and then evdev_open_device() fails, evdev_open()
    will pass a vmalloc'ed pointer to kfree.

    This might fix https://bugzilla.kernel.org/show_bug.cgi?id=88401, where
    there was a crash in kfree().

    Reported-by: Christian Casteyde
    Belatedly-Acked-by: Dmitry Torokhov
    Cc: Henrik Rydberg
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

03 Dec, 2014

9 commits

  • Signed-off-by: Hariprasad Shenai
    Signed-off-by: David S. Miller

    Hariprasad Shenai
     
  • These BUGs can be erroneously triggered by frags which refer to
    tail pages within a compound page. The data in these pages may
    overrun the hardware page while still being contained within the
    compound page, but since compound_order() evaluates to 0 for tail
    pages the assertion fails. The code already iterates through
    subsequent pages correctly in this scenario, so the BUGs are
    unnecessary and can be removed.

    Fixes: f36c374782e4 ("xen/netfront: handle compound page fragments on transmit")
    Cc: # 3.7+
    Signed-off-by: Seth Forshee
    Reviewed-by: David Vrabel
    Signed-off-by: David S. Miller

    Seth Forshee
     
  • In some android devices, there will be a "divide by zero" exception.
    vmpr->scanned could be zero before spin_lock(&vmpr->sr_lock).

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=88051

    [akpm@linux-foundation.org: neaten]
    Reported-by: ji_ang
    Cc: Anton Vorontsov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • If a frontswap dup-store failed, it should invalidate the expired page
    in the backend, or it could trigger some data corruption issue.
    Such as:
    1. use zswap as the frontswap backend with writeback feature
    2. store a swap page(version_1) to entry A, success
    3. dup-store a newer page(version_2) to the same entry A, fail
    4. use __swap_writepage() write version_2 page to swapfile, success
    5. zswap do shrink, writeback version_1 page to swapfile
    6. version_2 page is overwrited by version_1, data corrupt.

    This patch fixes this issue by invalidating expired data immediately
    when meet a dup-store failure.

    Signed-off-by: Weijie Yang
    Cc: Konrad Rzeszutek Wilk
    Cc: Seth Jennings
    Cc: Dan Streetman
    Cc: Minchan Kim
    Cc: Bob Liu
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Weijie Yang
     
  • Minor fixlet to perform the reserved pages counter aggregation for each
    node, at show_mem()

    Signed-off-by: Rafael Aquini
    Acked-by: Rik van Riel
    Acked-by: Johannes Weiner
    Acked-by: Yasuaki Ishimatsu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rafael Aquini
     
  • A few more small fixes for 3.18.

    * 'drm-fixes-3.18' of git://people.freedesktop.org/~agd5f/linux:
    drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6
    drm/radeon: Ignore RADEON_GEM_GTT_WC on 32-bit x86
    drm/radeon: sync all BOs involved in a CS v2

    Dave Airlie
     
  • I was unable too boot 3.18.0-rc6 because of the following kernel
    panic in drm_calc_vbltimestamp_from_scanoutpos():

    [drm] Initialized drm 1.1.0 20060810
    [drm] radeon kernel modesetting enabled.
    [drm] initializing kernel modesetting (RV100 0x1002:0x515E 0x15D9:0x8080).
    [drm] register mmio base: 0xC8400000
    [drm] register mmio size: 65536
    radeon 0000:0b:01.0: VRAM: 128M 0x00000000D0000000 - 0x00000000D7FFFFFF (16M used)
    radeon 0000:0b:01.0: GTT: 512M 0x00000000B0000000 - 0x00000000CFFFFFFF
    [drm] Detected VRAM RAM=128M, BAR=128M
    [drm] RAM width 16bits DDR
    [TTM] Zone kernel: Available graphics memory: 3829346 kiB
    [TTM] Zone dma32: Available graphics memory: 2097152 kiB
    [TTM] Initializing pool allocator
    [TTM] Initializing DMA pool allocator
    [drm] radeon: 16M of VRAM memory ready
    [drm] radeon: 512M of GTT memory ready.
    [drm] GART: num cpu pages 131072, num gpu pages 131072
    [drm] PCI GART of 512M enabled (table at 0x0000000037880000).
    radeon 0000:0b:01.0: WB disabled
    radeon 0000:0b:01.0: fence driver on ring 0 use gpu addr 0x00000000b0000000 and cpu addr 0xffff8800bbbfa000
    [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [drm] Driver supports precise vblank timestamp query.
    [drm] radeon: irq initialized.
    [drm] Loading R100 Microcode
    radeon 0000:0b:01.0: Direct firmware load for radeon/R100_cp.bin failed with error -2
    radeon_cp: Failed to load firmware "radeon/R100_cp.bin"
    [drm:r100_cp_init] *ERROR* Failed to load firmware!
    radeon 0000:0b:01.0: failed initializing CP (-2).
    radeon 0000:0b:01.0: Disabling GPU acceleration
    [drm] radeon: cp finalized
    BUG: unable to handle kernel NULL pointer dereference at 000000000000025c
    IP: [] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
    PGD 0
    Oops: 0000 [#1] SMP
    Modules linked in:
    CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.18.0-rc6-4-default #2649
    Hardware name: Supermicro X7DB8/X7DB8, BIOS 6.00 07/26/2006
    task: ffff880234da2010 ti: ffff880234da4000 task.ti: ffff880234da4000
    RIP: 0010:[] [] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
    RSP: 0000:ffff880234da7918 EFLAGS: 00010086
    RAX: ffffffff81557890 RBX: 0000000000000000 RCX: ffff880234da7a48
    RDX: ffff880234da79f4 RSI: 0000000000000000 RDI: ffff880232e15000
    RBP: ffff880234da79b8 R08: 0000000000000000 R09: 0000000000000000
    R10: 000000000000000a R11: 0000000000000001 R12: ffff880232dda1c0
    R13: ffff880232e1518c R14: 0000000000000292 R15: ffff880232e15000
    FS: 0000000000000000(0000) GS:ffff88023fc40000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 000000000000025c CR3: 0000000002014000 CR4: 00000000000007e0
    Stack:
    ffff880234da79d8 0000000000000286 ffff880232dcbc00 0000000000002480
    ffff880234da7958 0000000000000296 ffff880234da7998 ffffffff8151b51d
    ffff880234da7a48 0000000032dcbeb0 ffff880232dcbc00 ffff880232dcbc58
    Call Trace:
    [] ? drm_vma_offset_remove+0x1d/0x110
    [] radeon_get_vblank_timestamp_kms+0x38/0x60
    [] ? ttm_bo_release_list+0xba/0x180
    [] drm_get_last_vbltimestamp+0x41/0x70
    [] vblank_disable_and_save+0x73/0x1d0
    [] ? try_to_del_timer_sync+0x4f/0x70
    [] drm_vblank_cleanup+0x65/0xa0
    [] radeon_irq_kms_fini+0x1a/0x70
    [] r100_init+0x26e/0x410
    [] radeon_device_init+0x7ae/0xb50
    [] radeon_driver_load_kms+0x8f/0x210
    [] drm_dev_register+0xb5/0x110
    [] drm_get_pci_dev+0x8f/0x200
    [] radeon_pci_probe+0xad/0xe0
    [] local_pci_probe+0x45/0xa0
    [] pci_device_probe+0xd1/0x130
    [] driver_probe_device+0x12d/0x3e0
    [] __driver_attach+0x9b/0xa0
    [] ? __device_attach+0x40/0x40
    [] bus_for_each_dev+0x63/0xa0
    [] driver_attach+0x1e/0x20
    [] bus_add_driver+0x180/0x240
    [] driver_register+0x64/0xf0
    [] __pci_register_driver+0x4c/0x50
    [] drm_pci_init+0xf5/0x120
    [] ? ttm_init+0x6a/0x6a
    [] radeon_init+0x97/0xb5
    [] do_one_initcall+0xbc/0x1f0
    [] ? __wake_up+0x48/0x60
    [] kernel_init_freeable+0x18a/0x215
    [] ? initcall_blacklist+0xc0/0xc0
    [] ? rest_init+0x80/0x80
    [] kernel_init+0xe/0xf0
    [] ret_from_fork+0x7c/0xb0
    [] ? rest_init+0x80/0x80
    Code: 45 ac 0f 88 a8 01 00 00 3b b7 d0 01 00 00 49 89 ff 0f 83 99 01 00 00 48 8b 47 20 48 8b 80 88 00 00 00 48 85 c0 0f 84 cd 01 00 00 8b b1 5c 02 00 00 41 8b 89 58 02 00 00 89 75 98 41 8b b1 60
    RIP [] drm_calc_vbltimestamp_from_scanoutpos+0x4b/0x320
    RSP
    CR2: 000000000000025c
    ---[ end trace ad2c0aadf48e2032 ]---
    Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000009

    It has helped me to add a NULL pointer check that was suggested at
    http://lists.freedesktop.org/archives/dri-devel/2014-October/070663.html

    I am not familiar with the code. But the change looks sane
    and we need something fast at this stage of 3.18 development.

    Suggested-by: Helge Deller
    Signed-off-by: Petr Mladek
    Tested-by: Petr Mladek
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Petr Mladek
     
  • Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84627
    Signed-off-by: Michel Dänzer
    Signed-off-by: Alex Deucher
    Cc: stable@vger.kernel.org

    Michel Dänzer
     
  • Not just the userspace relocs, otherwise we won't wait
    for a swapped out page tables to be swapped in again.

    v2: rebased on Alex current drm-fixes-3.18

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

    Christian König