On Tue, Apr 13, 2021 at 9:53 AM David Laight <david.lai...@aculab.com> wrote:
>
> From: Matteo Croce
> > Sent: 12 April 2021 01:38
> >
> > Introduce skb_for_each_frag, an helper macro to iterate over the SKB frags.
>
> The real question is why, the change is:
>
> -       for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
> +       skb_for_each_frag(skb, i) {
>
> The existing code isn't complicated or obscure and 'does what it
> says on the tin'.
> The 'helper' requires you go and look up its definition to see
> what it is really doing.
>
> Unless you have a cunning plan to change the definition
> there is zero point.
>
> A more interesting change would be something that generated:
>         unsigned int nr_frags = skb_shinfo(skb)->nr_frags;
>         for (i = 0; i < nr_frags; i++) {
> since that will run faster for most loops.
> But that is ~impossible to do since you can't declare
> variables inside the (...) that are scoped to the loop.
>

I don't know how to do it with C90.
It would be nice to have a switch to just allow declaration of
variables inside the (...) instead of enabling the full C99 language
which, as Linus said[1], allows the insane mixing of variables and
code.

[1] 
https://lore.kernel.org/lkml/CA+55aFzs=duyibwymufiu_r1ajhar-8hpqhwlew8r5q4ncd...@mail.gmail.com/
-- 
per aspera ad upstream

Reply via email to