Lines Matching refs:msg
214 struct msg_msg *msg, *t; in freeque() local
223 list_for_each_entry_safe(msg, t, &msq->q_messages, m_list) { in freeque()
225 free_msg(msg); in freeque()
547 static int testmsg(struct msg_msg *msg, long type, int mode) in testmsg() argument
554 if (msg->m_type <= type) in testmsg()
558 if (msg->m_type == type) in testmsg()
562 if (msg->m_type != type) in testmsg()
569 static inline int pipelined_send(struct msg_queue *msq, struct msg_msg *msg) in pipelined_send() argument
574 if (testmsg(msg, msr->r_msgtype, msr->r_mode) && in pipelined_send()
575 !security_msg_queue_msgrcv(msq, msg, msr->r_tsk, in pipelined_send()
579 if (msr->r_maxsize < msg->m_ts) { in pipelined_send()
599 msr->r_msg = msg; in pipelined_send()
613 struct msg_msg *msg; in do_msgsnd() local
624 msg = load_msg(mtext, msgsz); in do_msgsnd()
625 if (IS_ERR(msg)) in do_msgsnd()
626 return PTR_ERR(msg); in do_msgsnd()
628 msg->m_type = mtype; in do_msgsnd()
629 msg->m_ts = msgsz; in do_msgsnd()
653 err = security_msg_queue_msgsnd(msq, msg, msgflg); in do_msgsnd()
701 if (!pipelined_send(msq, msg)) { in do_msgsnd()
703 list_add_tail(&msg->m_list, &msq->q_messages); in do_msgsnd()
711 msg = NULL; in do_msgsnd()
717 if (msg != NULL) in do_msgsnd()
718 free_msg(msg); in do_msgsnd()
753 static long do_msg_fill(void __user *dest, struct msg_msg *msg, size_t bufsz) in do_msg_fill() argument
758 if (put_user(msg->m_type, &msgp->mtype)) in do_msg_fill()
761 msgsz = (bufsz > msg->m_ts) ? msg->m_ts : bufsz; in do_msg_fill()
762 if (store_msg(msgp->mtext, msg, msgsz)) in do_msg_fill()
803 struct msg_msg *msg, *found = NULL; in find_msg() local
806 list_for_each_entry(msg, &msq->q_messages, m_list) { in find_msg()
807 if (testmsg(msg, *msgtyp, mode) && in find_msg()
808 !security_msg_queue_msgrcv(msq, msg, current, in find_msg()
810 if (mode == SEARCH_LESSEQUAL && msg->m_type != 1) { in find_msg()
811 *msgtyp = msg->m_type - 1; in find_msg()
812 found = msg; in find_msg()
815 return msg; in find_msg()
817 return msg; in find_msg()
831 struct msg_msg *msg, *copy = NULL; in do_msgrcv() local
858 msg = ERR_PTR(-EACCES); in do_msgrcv()
866 msg = ERR_PTR(-EIDRM); in do_msgrcv()
870 msg = find_msg(msq, &msgtyp, mode); in do_msgrcv()
871 if (!IS_ERR(msg)) { in do_msgrcv()
876 if ((bufsz < msg->m_ts) && !(msgflg & MSG_NOERROR)) { in do_msgrcv()
877 msg = ERR_PTR(-E2BIG); in do_msgrcv()
885 msg = copy_msg(msg, copy); in do_msgrcv()
889 list_del(&msg->m_list); in do_msgrcv()
893 msq->q_cbytes -= msg->m_ts; in do_msgrcv()
894 atomic_sub(msg->m_ts, &ns->msg_bytes); in do_msgrcv()
903 msg = ERR_PTR(-ENOMSG); in do_msgrcv()
959 msg = (struct msg_msg *)msr_d.r_msg; in do_msgrcv()
960 if (msg) in do_msgrcv()
975 if (msg != ERR_PTR(-EAGAIN)) in do_msgrcv()
986 msg = (struct msg_msg *)msr_d.r_msg; in do_msgrcv()
987 if (msg != ERR_PTR(-EAGAIN)) in do_msgrcv()
992 msg = ERR_PTR(-ERESTARTNOHAND); in do_msgrcv()
1003 if (IS_ERR(msg)) { in do_msgrcv()
1005 return PTR_ERR(msg); in do_msgrcv()
1008 bufsz = msg_handler(buf, msg, bufsz); in do_msgrcv()
1009 free_msg(msg); in do_msgrcv()