Question regarding strange-looking code in drivers/isdn/i4l/isdn_ppp.c

anish singh anish198519851985 at gmail.com
Mon Feb 2 15:20:13 EST 2015


On Mon, Feb 2, 2015 at 11:26 AM, Bas Peters <baspeters93 at gmail.com> wrote:

> Hi,
>
> I was checking some code in drivers/isdn/isdn_pp and came across the
> following:
>
>         case PPP_VJC_COMP:
>                 if (is->debug & 0x20)
>                         printk(KERN_DEBUG "isdn_ppp: VJC_COMP\n");
>                 {
>                         struct sk_buff *skb_old = skb;
>                         int pkt_len;
>                         skb = dev_alloc_skb(skb_old->len + 128);
>
>                         if (!skb) {
>                                 printk(KERN_WARNING "%s: Memory squeeze,
> dropping packet.\n", dev->name);
>                                 skb = skb_old;
>                                 goto drop_packet;
>                         }
>                         skb_put(skb, skb_old->len + 128);
>                         skb_copy_from_linear_data(skb_old, skb->data,
>                                                   skb_old->len);
>                         if (net_dev->local->ppp_slot < 0) {
>                                 printk(KERN_ERR "%s:
> net_dev->local->ppp_slot(%d) out of range\n",
>                                        __func__, net_dev->local->ppp_slot);
>                                 goto drop_packet;
>                         }
>                         pkt_len =
> slhc_uncompress(ippp_table[net_dev->local->ppp_slot]->slcomp,
>                                                   skb->data, skb_old->len);
>                         kfree_skb(skb_old);
>                         if (pkt_len < 0)
>                                 goto drop_packet;
>
>                         skb_trim(skb, pkt_len);
>                         skb->protocol = htons(ETH_P_IP);
>                 }
>                 break;
>
> Could you explain to me why there are braces AFTER the printk invocation?
> Was it perhaps intended that the printk was included in the braces?
>
I think it is intended and in my opinion it is because he didn't want to
declare
the local variables at the beginning of the function.  He probably wanted
that piece of code which is inside the braces as standalone.

>
> I'm sorry if I'm missing something completely obvious here, but it seems
> kind of strange to me.
>
> With kind regards,
>
> Bas
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150202/44c1679a/attachment.html 


More information about the Kernelnewbies mailing list