/** * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved. * * This source file is released under GPL v2 license (no other versions). * See the COPYING file included in the main directory of this source * distribution for the license terms and conditions. */ #ifndef _20K2REGISTERS_H_ #define _20K2REGISTERS_H_ /* Timer Registers */ #define WC 0x1b7000 #define TIMR 0x1b7004 # define TIMR_IE (1<<15) # define TIMR_IP (1<<14) #define GIP 0x1b7010 #define GIE 0x1b7014 /* I2C Registers */ #define I2C_IF_ADDRESS 0x1B9000 #define I2C_IF_WDATA 0x1B9004 #define I2C_IF_RDATA 0x1B9008 #define I2C_IF_STATUS 0x1B900C #define I2C_IF_WLOCK 0x1B9010 /* Global Control Registers */ #define GLOBAL_CNTL_GCTL 0x1B7090 /* PLL Registers */ #define PLL_CTL 0x1B7080 #define PLL_STAT 0x1B7084 #define PLL_ENB 0x1B7088 /* SRC Registers */ #define SRC_CTL 0x1A0000 /* 0x1A0000 + (256 * Chn) */ #define SRC_CCR 0x1A0004 /* 0x1A0004 + (256 * Chn) */ #define SRC_IMAP 0x1A0008 /* 0x1A0008 + (256 * Chn) */ #define SRC_CA 0x1A0010 /* 0x1A0010 + (256 * Chn) */ #define SRC_CF 0x1A0014 /* 0x1A0014 + (256 * Chn) */ #define SRC_SA 0x1A0018 /* 0x1A0018 + (256 * Chn) */ #define SRC_LA 0x1A001C /* 0x1A001C + (256 * Chn) */ #define SRC_CTLSWR 0x1A0020 /* 0x1A0020 + (256 * Chn) */ #define SRC_CD 0x1A0080 /* 0x1A0080 + (256 * Chn) + (4 * Regn) */ #define SRC_MCTL 0x1A012C #define SRC_IP 0x1A102C /* 0x1A102C + (256 * Regn) */ #define SRC_ENB 0x1A282C /* 0x1A282C + (256 * Regn) */ #define SRC_ENBSTAT 0x1A202C #define SRC_ENBSA 0x1A232C #define SRC_DN0Z 0x1A0030 #define SRC_DN1Z 0x1A0040 #define SRC_UPZ 0x1A0060 /* GPIO Registers */ #define GPIO_DATA 0x1B7020 #define GPIO_CTRL 0x1B7024 #define GPIO_EXT_DATA 0x1B70A0 /* Virtual memory registers */ #define VMEM_PTPAL 0x1C6300 /* 0x1C6300 + (16 * Chn) */ #define VMEM_PTPAH 0x1C6304 /* 0x1C6304 + (16 * Chn) */ #define VMEM_CTL 0x1C7000 /* Transport Registers */ #define TRANSPORT_ENB 0x1B6000 #define TRANSPORT_CTL 0x1B6004 #define TRANSPORT_INT 0x1B6008 /* Audio IO */ #define AUDIO_IO_AIM 0x1B5000 /* 0x1B5000 + (0x04 * Chn) */ #define AUDIO_IO_TX_CTL 0x1B5400 /* 0x1B5400 + (0x40 * Chn) */ #define AUDIO_IO_TX_CSTAT_L 0x1B5408 /* 0x1B5408 + (0x40 * Chn) */ #define AUDIO_IO_TX_CSTAT_H 0x1B540C /* 0x1B540C + (0x40 * Chn) */ #define AUDIO_IO_RX_CTL 0x1B5410 /* 0x1B5410 + (0x40 * Chn) */ #define AUDIO_IO_RX_SRT_CTL 0x1B5420 /* 0x1B5420 + (0x40 * Chn) */ #define AUDIO_IO_MCLK 0x1B5600 #define AUDIO_IO_TX_BLRCLK 0x1B5604 #define AUDIO_IO_RX_BLRCLK 0x1B5608 /* Mixer */ #define MIXER_AMOPLO 0x130000 /* 0x130000 + (8 * Chn) [4095 : 0] */ #define MIXER_AMOPHI 0x130004 /* 0x130004 + (8 * Chn) [4095 : 0] */ #define MIXER_PRING_LO_HI 0x188000 /* 0x188000 + (4 * Chn) [4095 : 0] */ #define MIXER_PMOPLO 0x138000 /* 0x138000 + (8 * Chn) [4095 : 0] */ #define MIXER_PMOPHI 0x138004 /* 0x138004 + (8 * Chn) [4095 : 0] */ #define MIXER_AR_ENABLE 0x19000C #endif dfba96c543e55b6672d5a37e'>netfilter/ebt_arpreply.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 /net/bridge/netfilter/ebt_arpreply.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 'net/bridge/netfilter/ebt_arpreply.c')