int cn_netlink_send(struct cn_msg *msg, u32 __group, unsigned int __nocast gfp_mask) 
int cn_netlink_send(struct cn_msg *msg, u32 __group, gfp_t gfp_mask) 
int cn_netlink_send(struct cn_msg *msg, u32 __group,		    unsigned int __nocast gfp_mask){	struct cn_callback_entry *__cbq;	unsigned int size;	struct sk_buff *skb;	struct nlmsghdr *nlh;	struct cn_msg *data;	struct cn_dev *dev = &cdev;	u32 group = 0;	int found = 0;	if (!__group) {		spin_lock_bh(&dev->cbdev->queue_lock);		list_for_each_entry(__cbq, &dev->cbdev->queue_list,				    callback_entry) {			if (cn_cb_equal(&__cbq->id.id, &msg->id)) {				found = 1;				group = __cbq->group;			}		}		spin_unlock_bh(&dev->cbdev->queue_lock);		if (!found)			return -ENODEV;	} else {		group = __group;	}	size = NLMSG_SPACE(sizeof(*msg) + msg->len);	skb = alloc_skb(size, gfp_mask);	if (!skb)		return -ENOMEM;	nlh = NLMSG_PUT(skb, 0, msg->seq, NLMSG_DONE, size - sizeof(*nlh));	data = NLMSG_DATA(nlh);	memcpy(data, msg, sizeof(*data) + msg->len);	NETLINK_CB(skb).dst_group = group;	netlink_broadcast(dev->nls, skb, 0, group, gfp_mask);	return 0;nlmsg_failure:	kfree_skb(skb);	return -EINVAL;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7/connector.c/clean/drivers/connector/connector.c