/* * ciscode.h * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * The initial developer of the original code is David A. Hinds * . Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * (C) 1999 David A. Hinds */ #ifndef _LINUX_CISCODE_H #define _LINUX_CISCODE_H /* Manufacturer and Product ID codes */ #define MANFID_3COM 0x0101 #define PRODID_3COM_3CXEM556 0x0035 #define PRODID_3COM_3CCFEM556 0x0556 #define PRODID_3COM_3C562 0x0562 #define MANFID_ACCTON 0x01bf #define PRODID_ACCTON_EN2226 0x010a #define MANFID_ADAPTEC 0x012f #define PRODID_ADAPTEC_SCSI 0x0001 #define MANFID_ATT 0xffff #define PRODID_ATT_KIT 0x0100 #define MANFID_CONTEC 0xc001 #define MANFID_FUJITSU 0x0004 #define PRODID_FUJITSU_MBH10302 0x0004 #define PRODID_FUJITSU_MBH10304 0x1003 #define PRODID_FUJITSU_LA501 0x2000 #define MANFID_IBM 0x00a4 #define PRODID_IBM_HOME_AND_AWAY 0x002e #define MANFID_INTEL 0x0089 #define PRODID_INTEL_DUAL_RS232 0x0301 #define PRODID_INTEL_2PLUS 0x8422 #define MANFID_KME 0x0032 #define PRODID_KME_KXLC005_A 0x0704 #define PRODID_KME_KXLC005_B 0x2904 #define MANFID_LINKSYS 0x0143 #define PRODID_LINKSYS_PCMLM28 0xc0ab #define PRODID_LINKSYS_3400 0x3341 #define MANFID_MEGAHERTZ 0x0102 #define PRODID_MEGAHERTZ_VARIOUS 0x0000 #define PRODID_MEGAHERTZ_EM3288 0x0006 #define MANFID_MACNICA 0xc00b #define MANFID_MOTOROLA 0x0109 #define PRODID_MOTOROLA_MARINER 0x0501 #define MANFID_NATINST 0x010b #define PRODID_NATINST_QUAD_RS232 0xd180 #define MANFID_NEW_MEDIA 0x0057 #define MANFID_NOKIA 0x0124 #define PRODID_NOKIA_CARDPHONE 0x0900 #define MANFID_OLICOM 0x0121 #define PRODID_OLICOM_OC2231 0x3122 #define PRODID_OLICOM_OC2232 0x3222 #define MANFID_OMEGA 0x0137 #define PRODID_OMEGA_QSP_100 0x0025 #define MANFID_OSITECH 0x0140 #define PRODID_OSITECH_JACK_144 0x0001 #define PRODID_OSITECH_JACK_288 0x0002 #define PRODID_OSITECH_JACK_336 0x0007 #define PRODID_OSITECH_SEVEN 0x0008 #define MANFID_OXSEMI 0x0279 #define MANFID_PIONEER 0x000b #define MANFID_PSION 0x016c #define PRODID_PSION_NET100 0x0023 #define MANFID_QUATECH 0x0137 #define PRODID_QUATECH_SPP100 0x0003 #define PRODID_QUATECH_DUAL_RS232 0x0012 #define PRODID_QUATECH_DUAL_RS232_D1 0x0007 #define PRODID_QUATECH_DUAL_RS232_D2 0x0052 #define PRODID_QUATECH_DUAL_RS232_G 0x004d #define PRODID_QUATECH_QUAD_RS232 0x001b #define PRODID_QUATECH_DUAL_RS422 0x000e #define PRODID_QUATECH_QUAD_RS422 0x0045 #define MANFID_SMC 0x0108 #define PRODID_SMC_ETHER 0x0105 #define MANFID_SOCKET 0x0104 #define PRODID_SOCKET_DUAL_RS232 0x0006 #define PRODID_SOCKET_EIO 0x000a #define PRODID_SOCKET_LPE 0x000d #define PRODID_SOCKET_LPE_CF 0x0075 #define MANFID_SUNDISK 0x0045 #define MANFID_TDK 0x0105 #define PRODID_TDK_CF010 0x0900 #define PRODID_TDK_NP9610 0x0d0a #define PRODID_TDK_MN3200 0x0e0a #define PRODID_TDK_GN3410 0x4815 #define MANFID_TOSHIBA 0x0098 #define MANFID_UNGERMANN 0x02c0 #define MANFID_XIRCOM 0x0105 #define MANFID_POSSIO 0x030c #define PRODID_POSSIO_GCC 0x0003 #define MANFID_NEC 0x0010 #endif /* _LINUX_CISCODE_H */ ild/feature/test-bpf.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-01-29 13:50:06 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-29 13:50:06 -0800
commit39cb2c9a316e77f6dfba96c543e55b6672d5a37e (patch)
tree98fe974ee4e20121253de7f61fc8d01bdb3821c1 /tools/build/feature/test-bpf.c
parent2c5d9555d6d937966d79d4c6529a5f7b9206e405 (diff)
drm/i915: Check for NULL i915_vma in intel_unpin_fb_obj()
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>
Diffstat (limited to 'tools/build/feature/test-bpf.c')