On Fri, Dec 04, 2015 at 01:54:56PM +0100, Takashi Iwai wrote:
On Fri, 04 Dec 2015 13:16:46 +0100, Ville Syrjälä wrote:
On Tue, Dec 01, 2015 at 05:09:50PM +0100, Takashi Iwai wrote:
to_intel_crtc() always returns a non-NULL pointer.
Eh? to_intel_crtc(NULL) should return NULL or we might have tons of breakage on our hands. Or maybe the atomic work has gotten rid of that assumption, but at least we used to depend on that heavily.
Well, to_intel_crtc() has been always container_of() since the very beginning of universe:
commit 79e539453b34e35f39299a899d263b0a1f1670bd Author: Jesse Barnes jbarnes@virtuousgeek.org Date: Fri Nov 7 14:24:08 2008 -0800
DRM: i915: add mode setting support
--- /dev/null +++ b/drivers/gpu/drm/i915/intel_drv.h .... +#define to_intel_crtc(x) container_of(x, struct intel_crtc, base) ....
Yes, but struct intel_crtc { struct drm_crtc base; ... }
So offsetof(struct intel_crtc, base)==0 and NULL-0 is still NULL.
I once suggested that someone should add a compile time assert to make sure this always holds for us, but no one took the bait.
Takashi
Signed-off-by: Takashi Iwai tiwai@suse.de
drivers/gpu/drm/i915/intel_audio.c | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_audio.c b/drivers/gpu/drm/i915/intel_audio.c index 4dccd9b003a1..0c38cc6c82ae 100644 --- a/drivers/gpu/drm/i915/intel_audio.c +++ b/drivers/gpu/drm/i915/intel_audio.c @@ -656,10 +656,6 @@ static int i915_audio_component_sync_audio_rate(struct device *dev, intel_dig_port = enc_to_dig_port(&intel_encoder->base); if (port == intel_dig_port->port) { crtc = to_intel_crtc(intel_encoder->base.crtc);
if (!crtc) {
DRM_DEBUG_KMS("%s: crtc is NULL\n", __func__);
continue;
}} pipe = crtc->pipe; break;
-- 2.6.3
-- Ville Syrjälä Intel OTC