On Fri, Dec 04, 2015 at 02:12:14PM +0100, Takashi Iwai wrote: > 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? Oops. Patch reverted, sorry for the mess. -Daniel > > > 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 -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx