Alright, that makes sense. Is it bad practice to do so? Would it make sense to change this to improve readability? 2015-02-02 20:34 GMT+01:00 Jeff Haran <Jeff.Haran@citrix.com>:
-----Original Message----- From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies- bounces@kernelnewbies.org] On Behalf Of Bas Peters Sent: Monday, February 02, 2015 11:26 AM To: kernelnewbies@kernelnewbies.org; isdn@linux-pingi.de Subject: Question regarding strange-looking code in drivers/isdn/i4l/isdn_ppp.c
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'm sorry if I'm missing something completely obvious here, but it seems kind of strange to me.
With kind regards,
Bas
I assume it's just to introduce a new name space scope inside the case statement without going to the trouble of writing a new function that would be called from it.
Jeff Haran