On Fri, Aug 29, 2014 at 12:12:38PM +0200, David Herrmann wrote: [...] > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index 83a2461..5cfa574 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -2761,18 +2761,25 @@ void radeon_atombios_fini(struct radeon_device *rdev); > /* > * RING helpers. > */ > -#if DRM_DEBUG_CODE == 0 > + > +/** > + * radeon_ring_write - write a value to the ring > + * > + * @ring: radeon_ring structure holding ring information > + * @v: dword (dw) value to write > + * > + * Write a value to the requested ring buffer (all asics). > + */ > static inline void radeon_ring_write(struct radeon_ring *ring, uint32_t v) > { > + if (ring->count_dw <= 0) > + DRM_ERROR("radeon: writing more dwords to the ring than expected!\n"); > + > ring->ring[ring->wptr++] = v; > ring->wptr &= ring->ptr_mask; > ring->count_dw--; > ring->ring_free_dw--; > } > -#else > -/* With debugging this is just too big to inline */ > -void radeon_ring_write(struct radeon_ring *ring, uint32_t v); > -#endif > > /* > * ASICs macro. > diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c > index d656079..6f2a9bd 100644 > --- a/drivers/gpu/drm/radeon/radeon_ring.c > +++ b/drivers/gpu/drm/radeon/radeon_ring.c > @@ -45,27 +45,6 @@ > static int radeon_debugfs_ring_init(struct radeon_device *rdev, struct radeon_ring *ring); > > /** > - * radeon_ring_write - write a value to the ring > - * > - * @ring: radeon_ring structure holding ring information > - * @v: dword (dw) value to write > - * > - * Write a value to the requested ring buffer (all asics). > - */ > -void radeon_ring_write(struct radeon_ring *ring, uint32_t v) > -{ > -#if DRM_DEBUG_CODE > - if (ring->count_dw <= 0) { > - DRM_ERROR("radeon: writing more dwords to the ring than expected!\n"); > - } > -#endif > - ring->ring[ring->wptr++] = v; > - ring->wptr &= ring->ptr_mask; > - ring->count_dw--; > - ring->ring_free_dw--; > -} The original was clearly never tested with DRM_DEBUG_CODE != 0. I don't see how it could've built given that the header protects the complete function whereas the implementation protects only part of the function. Reviewed-by: Thierry Reding