On Fri, 04 Dec 2015 14:07:03 +0100, Ville Syrjälä wrote: > > 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@xxxxxxxxxxxxxxxx> > > 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. Argh, only from the usage of container_of(), no one expects this implicit assumption :-< Indeed intel code has lots of these silent rules, e.g. calling kfree() for the base class object. Daniel, could you please take my patch back? thanks, Takashi > > > > > > > Takashi > > > > > > > > > > > > > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> > > > > --- > > > > 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 > > > > > -- > Ville Syrjälä > Intel OTC > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx