/* * This header provides constants for the PRCMU bindings. * */ #ifndef _DT_BINDINGS_MFD_PRCMU_H #define _DT_BINDINGS_MFD_PRCMU_H /* * Clock identifiers. */ #define ARMCLK 0 #define PRCMU_ACLK 1 #define PRCMU_SVAMMCSPCLK 2 #define PRCMU_SDMMCHCLK 2 /* DBx540 only. */ #define PRCMU_SIACLK 3 #define PRCMU_SIAMMDSPCLK 3 /* DBx540 only. */ #define PRCMU_SGACLK 4 #define PRCMU_UARTCLK 5 #define PRCMU_MSP02CLK 6 #define PRCMU_MSP1CLK 7 #define PRCMU_I2CCLK 8 #define PRCMU_SDMMCCLK 9 #define PRCMU_SLIMCLK 10 #define PRCMU_CAMCLK 10 /* DBx540 only. */ #define PRCMU_PER1CLK 11 #define PRCMU_PER2CLK 12 #define PRCMU_PER3CLK 13 #define PRCMU_PER5CLK 14 #define PRCMU_PER6CLK 15 #define PRCMU_PER7CLK 16 #define PRCMU_LCDCLK 17 #define PRCMU_BMLCLK 18 #define PRCMU_HSITXCLK 19 #define PRCMU_HSIRXCLK 20 #define PRCMU_HDMICLK 21 #define PRCMU_APEATCLK 22 #define PRCMU_APETRACECLK 23 #define PRCMU_MCDECLK 24 #define PRCMU_IPI2CCLK 25 #define PRCMU_DSIALTCLK 26 #define PRCMU_DMACLK 27 #define PRCMU_B2R2CLK 28 #define PRCMU_TVCLK 29 #define SPARE_UNIPROCLK 30 #define PRCMU_SSPCLK 31 #define PRCMU_RNGCLK 32 #define PRCMU_UICCCLK 33 #define PRCMU_G1CLK 34 /* DBx540 only. */ #define PRCMU_HVACLK 35 /* DBx540 only. */ #define PRCMU_SPARE1CLK 36 #define PRCMU_SPARE2CLK 37 #define PRCMU_NUM_REG_CLOCKS 38 #define PRCMU_RTCCLK PRCMU_NUM_REG_CLOCKS #define PRCMU_SYSCLK 39 #define PRCMU_CDCLK 40 #define PRCMU_TIMCLK 41 #define PRCMU_PLLSOC0 42 #define PRCMU_PLLSOC1 43 #define PRCMU_ARMSS 44 #define PRCMU_PLLDDR 45 /* DSI Clocks */ #define PRCMU_PLLDSI 46 #define PRCMU_DSI0CLK 47 #define PRCMU_DSI1CLK 48 #define PRCMU_DSI0ESCCLK 49 #define PRCMU_DSI1ESCCLK 50 #define PRCMU_DSI2ESCCLK 51 /* LCD DSI PLL - Ux540 only */ #define PRCMU_PLLDSI_LCD 52 #define PRCMU_DSI0CLK_LCD 53 #define PRCMU_DSI1CLK_LCD 54 #define PRCMU_DSI0ESCCLK_LCD 55 #define PRCMU_DSI1ESCCLK_LCD 56 #define PRCMU_DSI2ESCCLK_LCD 57 #define PRCMU_NUM_CLKS 58 #endif ype='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/net'>net</a>/<a href='/cgit.cgi/linux/net-next.git/log/net/sched'>sched</a>/<a href='/cgit.cgi/linux/net-next.git/log/net/sched/sch_choke.c'>sch_choke.c</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/net/sched/sch_choke.c?showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr> t.git/commit/net?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>net</a>/<a href='/cgit.cgi/linux/net-next.git/commit/net/sched?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>sched</a>/<a href='/cgit.cgi/linux/net-next.git/commit/net/sched/sch_htb.c?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>sch_htb.c</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='id' value='39cb2c9a316e77f6dfba96c543e55b6672d5a37e'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'> <tr><th>author</th><td>Linus Torvalds <torvalds@linux-foundation.org></td><td class='right'>2017-01-29 13:50:06 -0800</td></tr> <tr><th>committer</th><td>Linus Torvalds <torvalds@linux-foundation.org></td><td class='right'>2017-01-29 13:50:06 -0800</td></tr> <tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/net/sched/sch_htb.c?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>39cb2c9a316e77f6dfba96c543e55b6672d5a37e</a> (<a href='/cgit.cgi/linux/net-next.git/patch/net/sched/sch_htb.c?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>patch</a>)</td></tr> <tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>98fe974ee4e20121253de7f61fc8d01bdb3821c1</a> /<a href='/cgit.cgi/linux/net-next.git/tree/net/sched/sch_htb.c?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>net/sched/sch_htb.c</a></td></tr> <tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/net/sched/sch_htb.c?id=2c5d9555d6d937966d79d4c6529a5f7b9206e405'>2c5d9555d6d937966d79d4c6529a5f7b9206e405</a> (<a href='/cgit.cgi/linux/net-next.git/diff/net/sched/sch_htb.c?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e&id2=2c5d9555d6d937966d79d4c6529a5f7b9206e405'>diff</a>)</td></tr></table> <div class='commit-subject'>drm/i915: Check for NULL i915_vma in intel_unpin_fb_obj()</div><div class='commit-msg'>I've seen this trigger twice now, where the i915_gem_object_to_ggtt() call in intel_unpin_fb_obj() returns NULL, resulting in an oops immediately afterwards as the (inlined) call to i915_vma_unpin_fence() tries to dereference it. It seems to be some race condition where the object is going away at shutdown time, since both times happened when shutting down the X server. The call chains were different: - VT ioctl(KDSETMODE, KD_TEXT): intel_cleanup_plane_fb+0x5b/0xa0 [i915] drm_atomic_helper_cleanup_planes+0x6f/0x90 [drm_kms_helper] intel_atomic_commit_tail+0x749/0xfe0 [i915] intel_atomic_commit+0x3cb/0x4f0 [i915] drm_atomic_commit+0x4b/0x50 [drm] restore_fbdev_mode+0x14c/0x2a0 [drm_kms_helper] drm_fb_helper_restore_fbdev_mode_unlocked+0x34/0x80 [drm_kms_helper] drm_fb_helper_set_par+0x2d/0x60 [drm_kms_helper] intel_fbdev_set_par+0x18/0x70 [i915] fb_set_var+0x236/0x460 fbcon_blank+0x30f/0x350 do_unblank_screen+0xd2/0x1a0 vt_ioctl+0x507/0x12a0 tty_ioctl+0x355/0xc30 do_vfs_ioctl+0xa3/0x5e0 SyS_ioctl+0x79/0x90 entry_SYSCALL_64_fastpath+0x13/0x94 - i915 unpin_work workqueue: intel_unpin_work_fn+0x58/0x140 [i915] process_one_work+0x1f1/0x480 worker_thread+0x48/0x4d0 kthread+0x101/0x140 and this patch purely papers over the issue by adding a NULL pointer check and a WARN_ON_ONCE() to avoid the oops that would then generally make the machine unresponsive. Other callers of i915_gem_object_to_ggtt() seem to also check for the returned pointer being NULL and warn about it, so this clearly has happened before in other places. [ Reported it originally to the i915 developers on Jan 8, applying the ugly workaround on my own now after triggering the problem for the second time with no feedback. This is likely to be the same bug reported as https://bugs.freedesktop.org/show_bug.cgi?id=98829 https://bugs.freedesktop.org/show_bug.cgi?id=99134 which has a patch for the underlying problem, but it hasn't gotten to me, so I'm applying the workaround. ] Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Imre Deak <imre.deak@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> </div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?id=39cb2c9a316e77f6dfba96c543e55b6672d5a37e'>Diffstat</a> (limited to 'net/sched/sch_htb.c')</div><table summary='diffstat' class='diffstat'>