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

Bas Peters baspeters93 at gmail.com
Mon Feb 2 14:26:26 EST 2015


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



More information about the Kernelnewbies mailing list