diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index fc40cb31b3c..50437d06bfb 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1695,6 +1695,7 @@ static int netlink_dump(struct sock *sk) struct netlink_callback *cb; struct sk_buff *skb = NULL; struct nlmsghdr *nlh; + struct module *module; int len, err = -ENOBUFS; int alloc_size; @@ -1740,9 +1741,10 @@ static int netlink_dump(struct sock *sk) if (cb->done) cb->done(cb); nlk->cb = NULL; + module = cb->module; mutex_unlock(nlk->cb_mutex); - module_put(cb->module); + module_put(module); netlink_destroy_callback(cb); return 0;