[Intel-gfx] [RFC PATCH] drm/i915: fix potential dangling else problems in for_each_ macros
Jani Nikula
jani.nikula at intel.com
Wed Nov 25 01:10:12 PST 2015
On Wed, 25 Nov 2015, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> On Tue, Nov 24, 2015 at 10:26:01PM +0000, Chris Wilson wrote:
>> On Tue, Nov 24, 2015 at 07:36:25PM +0200, Jani Nikula wrote:
>> > /* Iterate over initialised rings */
>> > #define for_each_ring(ring__, dev_priv__, i__) \
>> > for ((i__) = 0; (i__) < I915_NUM_RINGS; (i__)++) \
>> > - if (((ring__) = &(dev_priv__)->ring[(i__)]), intel_ring_initialized((ring__)))
>> > + for_each_if ((((ring__) = &(dev_priv__)->ring[(i__)]), intel_ring_initialized((ring__))))
>>
>> Idly wondering if we would be happy with
>>
>> for_each_ring(ring__, dev_priv__)
>> for ((ring__) = &(dev_priv__)->ring[0];
>> (ring__) <= &(dev_priv__)->ring[I915_NUM_RINGS];
>> (ring__)++)
>> for_each_if(intel_ring_initialized(ring__))
>>
>> ?
>>
>> The downside is that we have used i__ in several places rather than
>> ring->id.
>
> Fwiw, 13 files changed, 113 insertions(+), 140 deletions(-)
Seems good, looks like you have the patch so I won't bother. v2 of my
patch was merged to drm-misc now, so that complicates a bit. Perhaps the
i__ to ring->id change could be a prep step. *shrug*.
BR,
Jani.
>
> Seems a reasonable shrinkage.
> -Chris
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list