spin_lock_irq(&sk->sk_receive_queue.lock); 
spin_lock_bh(&sk->sk_receive_queue.lock); 
static int raw_ioctl(struct sock *sk, int cmd, unsigned long arg){	switch (cmd) {		case SIOCOUTQ: {			int amount = atomic_read(&sk->sk_wmem_alloc);			return put_user(amount, (int __user *)arg);		}		case SIOCINQ: {			struct sk_buff *skb;			int amount = 0;			spin_lock_irq(&sk->sk_receive_queue.lock);			skb = skb_peek(&sk->sk_receive_queue);			if (skb != NULL)				amount = skb->len;			spin_unlock_irq(&sk->sk_receive_queue.lock);			return put_user(amount, (int __user *)arg);		}		default:#ifdef CONFIG_IP_MROUTE			return ipmr_ioctl(sk, cmd, (void __user *)arg);#else			return -ENOIOCTLCMD;#endif	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/e0f9f8586a0b21fb3c7a4ead3804008d57dfdef7/raw.c/clean/net/ipv4/raw.c