]> err.no Git - linux-2.6/blobdiff - drivers/connector/connector.c
[TG3]: Bump driver version and reldate.
[linux-2.6] / drivers / connector / connector.c
index 1422285d537c59e20df6d1fe8273c3b1e5afc960..d7125f4d9113bf42a477ea2be5864740a4e47960 100644 (file)
@@ -69,8 +69,7 @@ int cn_already_initialized = 0;
  * a new message.
  *
  */
-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)
 {
        struct cn_callback_entry *__cbq;
        unsigned int size;
@@ -98,6 +97,9 @@ int cn_netlink_send(struct cn_msg *msg, u32 __group,
                group = __group;
        }
 
+       if (!netlink_has_listeners(dev->nls, group))
+               return -ESRCH;
+
        size = NLMSG_SPACE(sizeof(*msg) + msg->len);
 
        skb = alloc_skb(size, gfp_mask);
@@ -112,9 +114,7 @@ int cn_netlink_send(struct cn_msg *msg, u32 __group,
 
        NETLINK_CB(skb).dst_group = group;
 
-       netlink_broadcast(dev->nls, skb, 0, group, gfp_mask);
-
-       return 0;
+       return netlink_broadcast(dev->nls, skb, 0, group, gfp_mask);
 
 nlmsg_failure:
        kfree_skb(skb);