On Mon, Feb 02, 2015 at 08:26:26PM +0100, Bas Peters 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?
Nope, the printk is for a debugging flag. The braces afterward is for the new variable scope, it's odd looking yes, but correct code and formatting. Hope this helps, greg k-h