Thread (6 messages) 6 messages, 5 authors, 2015-02-02

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

From: Bas Peters <hidden>
Date: 2015-02-02 19:36:59

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 [off-list ref]:
quoted
-----Original Message-----
From: kernelnewbies-bounces at kernelnewbies.org [mailto:kernelnewbies-
bounces at kernelnewbies.org] On Behalf Of Bas Peters
Sent: Monday, February 02, 2015 11:26 AM
To: kernelnewbies at kernelnewbies.org; isdn at 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-
quoted
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-
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help