These patches change netlink to provide consistent locking in dump callbacks. Currently the first invocation of the callbacks happens under the queue processing mutex and ->cb_lock of the dumping socket, further invocations only under cb_lock. The first patch replaces the cb_lock spinlock by a mutex and allows netlink_kernel_create users to override it with a subsystem specific mutex, the second patch makes use of this for rtnetlink. The third and fourth patches remove some locking that is not needed anymore.
Please apply, thanks. drivers/connector/connector.c | 2 - drivers/scsi/scsi_netlink.c | 3 +- drivers/scsi/scsi_transport_iscsi.c | 2 - fs/ecryptfs/netlink.c | 2 - include/linux/netlink.h | 5 +++- include/net/pkt_sched.h | 2 - kernel/audit.c | 2 - lib/kobject_uevent.c | 2 - net/bridge/br_netlink.c | 2 - net/bridge/netfilter/ebt_ulog.c | 2 - net/core/fib_rules.c | 4 --- net/core/rtnetlink.c | 12 ++++++----- net/decnet/dn_dev.c | 3 -- net/decnet/netfilter/dn_rtmsg.c | 2 - net/ipv4/devinet.c | 12 +---------- net/ipv4/fib_frontend.c | 3 +- net/ipv4/inet_diag.c | 2 - net/ipv4/netfilter/ip_queue.c | 2 - net/ipv4/netfilter/ipt_ULOG.c | 2 - net/ipv6/addrconf.c | 2 - net/ipv6/netfilter/ip6_queue.c | 2 - net/netfilter/nfnetlink.c | 2 - net/netlink/af_netlink.c | 38 +++++++++++++++++++++--------------- net/netlink/genetlink.c | 2 - net/sched/cls_api.c | 2 - net/sched/sch_api.c | 22 ++------------------ net/sched/sch_generic.c | 29 ++++++--------------------- net/xfrm/xfrm_user.c | 2 - security/selinux/netlink.c | 2 - 29 files changed, 66 insertions(+), 103 deletions(-) Patrick McHardy (4): [NETLINK]: Switch cb_lock spinlock to mutex and allow to override it [RTNETLINK]: Hold rtnl_mutex during netlink dump callbacks [RTNETLINK]: Remove unnecessary locking in dump callbacks [NET_SCHED]: Eliminate qdisc_tree_lock - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html