|
@@ -70,8 +70,6 @@ struct msg_sender {
|
|
|
|
|
|
#define msg_ids(ns) ((ns)->ids[IPC_MSG_IDS])
|
|
|
|
|
|
-#define msg_unlock(msq) ipc_unlock(&(msq)->q_perm)
|
|
|
-
|
|
|
static void freeque(struct ipc_namespace *, struct kern_ipc_perm *);
|
|
|
static int newque(struct ipc_namespace *, struct ipc_params *);
|
|
|
#ifdef CONFIG_PROC_FS
|
|
@@ -270,7 +268,8 @@ static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp)
|
|
|
expunge_all(msq, -EIDRM);
|
|
|
ss_wakeup(&msq->q_senders, 1);
|
|
|
msg_rmid(ns, msq);
|
|
|
- msg_unlock(msq);
|
|
|
+ ipc_unlock_object(&msq->q_perm);
|
|
|
+ rcu_read_unlock();
|
|
|
|
|
|
list_for_each_entry_safe(msg, t, &msq->q_messages, m_list) {
|
|
|
atomic_dec(&ns->msg_hdrs);
|