Lines Matching refs:msg

277 	struct msg_msg *msg, *t;  in freeque()  local
288 list_for_each_entry_safe(msg, t, &msq->q_messages, m_list) { in freeque()
290 free_msg(msg); in freeque()
794 static int testmsg(struct msg_msg *msg, long type, int mode) in testmsg() argument
801 if (msg->m_type <= type) in testmsg()
805 if (msg->m_type == type) in testmsg()
809 if (msg->m_type != type) in testmsg()
816 static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg, in pipelined_send() argument
822 if (testmsg(msg, msr->r_msgtype, msr->r_mode) && in pipelined_send()
823 !security_msg_queue_msgrcv(&msq->q_perm, msg, msr->r_tsk, in pipelined_send()
827 if (msr->r_maxsize < msg->m_ts) { in pipelined_send()
839 smp_store_release(&msr->r_msg, msg); in pipelined_send()
852 struct msg_msg *msg; in do_msgsnd() local
864 msg = load_msg(mtext, msgsz); in do_msgsnd()
865 if (IS_ERR(msg)) in do_msgsnd()
866 return PTR_ERR(msg); in do_msgsnd()
868 msg->m_type = mtype; in do_msgsnd()
869 msg->m_ts = msgsz; in do_msgsnd()
893 err = security_msg_queue_msgsnd(&msq->q_perm, msg, msgflg); in do_msgsnd()
939 if (!pipelined_send(msq, msg, &wake_q)) { in do_msgsnd()
941 list_add_tail(&msg->m_list, &msq->q_messages); in do_msgsnd()
949 msg = NULL; in do_msgsnd()
956 if (msg != NULL) in do_msgsnd()
957 free_msg(msg); in do_msgsnd()
1026 static long do_msg_fill(void __user *dest, struct msg_msg *msg, size_t bufsz) in do_msg_fill() argument
1031 if (put_user(msg->m_type, &msgp->mtype)) in do_msg_fill()
1034 msgsz = (bufsz > msg->m_ts) ? msg->m_ts : bufsz; in do_msg_fill()
1035 if (store_msg(msgp->mtext, msg, msgsz)) in do_msg_fill()
1076 struct msg_msg *msg, *found = NULL; in find_msg() local
1079 list_for_each_entry(msg, &msq->q_messages, m_list) { in find_msg()
1080 if (testmsg(msg, *msgtyp, mode) && in find_msg()
1081 !security_msg_queue_msgrcv(&msq->q_perm, msg, current, in find_msg()
1083 if (mode == SEARCH_LESSEQUAL && msg->m_type != 1) { in find_msg()
1084 *msgtyp = msg->m_type - 1; in find_msg()
1085 found = msg; in find_msg()
1088 return msg; in find_msg()
1090 return msg; in find_msg()
1104 struct msg_msg *msg, *copy = NULL; in do_msgrcv() local
1132 msg = ERR_PTR(-EACCES); in do_msgrcv()
1140 msg = ERR_PTR(-EIDRM); in do_msgrcv()
1144 msg = find_msg(msq, &msgtyp, mode); in do_msgrcv()
1145 if (!IS_ERR(msg)) { in do_msgrcv()
1150 if ((bufsz < msg->m_ts) && !(msgflg & MSG_NOERROR)) { in do_msgrcv()
1151 msg = ERR_PTR(-E2BIG); in do_msgrcv()
1159 msg = copy_msg(msg, copy); in do_msgrcv()
1163 list_del(&msg->m_list); in do_msgrcv()
1167 msq->q_cbytes -= msg->m_ts; in do_msgrcv()
1168 percpu_counter_sub_local(&ns->percpu_msg_bytes, msg->m_ts); in do_msgrcv()
1177 msg = ERR_PTR(-ENOMSG); in do_msgrcv()
1221 msg = READ_ONCE(msr_d.r_msg); in do_msgrcv()
1222 if (msg != ERR_PTR(-EAGAIN)) { in do_msgrcv()
1235 msg = READ_ONCE(msr_d.r_msg); in do_msgrcv()
1236 if (msg != ERR_PTR(-EAGAIN)) in do_msgrcv()
1241 msg = ERR_PTR(-ERESTARTNOHAND); in do_msgrcv()
1253 if (IS_ERR(msg)) { in do_msgrcv()
1255 return PTR_ERR(msg); in do_msgrcv()
1258 bufsz = msg_handler(buf, msg, bufsz); in do_msgrcv()
1259 free_msg(msg); in do_msgrcv()
1277 static long compat_do_msg_fill(void __user *dest, struct msg_msg *msg, size_t bufsz) in compat_do_msg_fill() argument
1282 if (put_user(msg->m_type, &msgp->mtype)) in compat_do_msg_fill()
1285 msgsz = (bufsz > msg->m_ts) ? msg->m_ts : bufsz; in compat_do_msg_fill()
1286 if (store_msg(msgp->mtext, msg, msgsz)) in compat_do_msg_fill()