]> git.baikalelectronics.ru Git - kernel.git/commit
connector: convert to synchronous netlink message processing
authorPatrick McHardy <kaber@trash.net>
Mon, 28 Mar 2011 08:39:36 +0000 (08:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 31 Mar 2011 00:14:33 +0000 (17:14 -0700)
commit062a51bfec58380f10d0ebe2d7a46b72197f01e1
tree698d5c8e22e68f9a621c03972556e3a73c525465
parent7dc1a2759cfa1be6c94d4c3fc14c079f3589d9ed
connector: convert to synchronous netlink message processing

Commits cb9164b7 (netlink: kill eff_cap from struct netlink_skb_parms)
and bedcfabc (netlink: kill loginuid/sessionid/sid members from struct
netlink_skb_parms) removed some members from struct netlink_skb_parms
that depend on the current context, all netlink users are now required
to do synchronous message processing.

connector however queues received messages and processes them in a work
queue, which is not valid anymore. This patch converts connector to do
synchronous message processing by invoking the registered callback handler
directly from the netlink receive function.

In order to avoid invoking the callback with connector locks held, a
reference count is added to struct cn_callback_entry, the reference
is taken when finding a matching callback entry on the device's queue_list
and released after the callback handler has been invoked.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Acked-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/connector/cn_queue.c
drivers/connector/connector.c
include/linux/connector.h