Lines Matching refs:recv_msg
266 struct ipmi_recv_msg *recv_msg;
726 && (intf->seq_table[i].recv_msg))
727 ipmi_free_recv_msg(intf->seq_table[i].recv_msg);
1045 struct ipmi_recv_msg *recv_msg,
1067 intf->seq_table[i].recv_msg = recv_msg;
1104 struct ipmi_recv_msg **recv_msg)
1114 struct ipmi_recv_msg *msg = intf->seq_table[seq].recv_msg;
1119 *recv_msg = msg;
1184 msg = ent->recv_msg;
1365 && (intf->seq_table[i].recv_msg->user == user)) {
1368 ipmi_free_recv_msg(intf->seq_table[i].recv_msg);
1914 struct ipmi_recv_msg *recv_msg,
1930 memcpy(&recv_msg->addr, smi_addr, sizeof(*smi_addr));
1967 smi_msg->user_data = recv_msg;
1981 struct ipmi_recv_msg *recv_msg,
2032 memcpy(&recv_msg->addr, ipmb_addr, sizeof(*ipmb_addr));
2034 if (recv_msg->msg.netfn & 0x1) {
2048 smi_msg->user_data = recv_msg;
2068 recv_msg,
2097 memcpy(recv_msg->msg_data, smi_msg->data,
2099 recv_msg->msg.data = recv_msg->msg_data;
2100 recv_msg->msg.data_len = smi_msg->data_size;
2105 * recv_msg before we release the lock.
2122 struct ipmi_recv_msg *recv_msg,
2126 bool is_cmd = !(recv_msg->msg.netfn & 0x1);
2153 smi_msg->data[2] = recv_msg->msgid << 2 | daddr->rq_lun;
2156 smi_msg->data[2] = recv_msg->msgid << 2 | daddr->rs_lun;
2164 smi_msg->user_data = recv_msg;
2174 struct ipmi_recv_msg *recv_msg,
2212 memcpy(&recv_msg->addr, lan_addr, sizeof(*lan_addr));
2214 if (recv_msg->msg.netfn & 0x1) {
2227 smi_msg->user_data = recv_msg;
2239 recv_msg,
2267 memcpy(recv_msg->msg_data, smi_msg->data,
2269 recv_msg->msg.data = recv_msg->msg_data;
2270 recv_msg->msg.data_len = smi_msg->data_size;
2275 * recv_msg before we release the lock.
2308 struct ipmi_recv_msg *recv_msg;
2320 recv_msg = supplied_recv;
2322 recv_msg = ipmi_alloc_recv_msg();
2323 if (recv_msg == NULL) {
2328 recv_msg->user_msg_data = user_msg_data;
2336 ipmi_free_recv_msg(recv_msg);
2348 recv_msg->user = user;
2352 recv_msg->msgid = msgid;
2357 recv_msg->msg = *msg;
2361 recv_msg, retries, retry_time_ms);
2363 rv = i_ipmi_req_ipmb(intf, addr, msgid, msg, smi_msg, recv_msg,
2368 recv_msg, source_lun);
2370 rv = i_ipmi_req_lan(intf, addr, msgid, msg, smi_msg, recv_msg,
2381 ipmi_free_recv_msg(recv_msg);
3757 deliver_err_response(intf, ent->recv_msg, IPMI_ERR_UNSPECIFIED);
3816 struct ipmi_recv_msg *recv_msg;
3848 &recv_msg)) {
3857 memcpy(recv_msg->msg_data, &msg->rsp[9], msg->rsp_size - 9);
3863 recv_msg->msg.netfn = msg->rsp[4] >> 2;
3864 recv_msg->msg.data = recv_msg->msg_data;
3865 recv_msg->msg.data_len = msg->rsp_size - 10;
3866 recv_msg->recv_type = IPMI_RESPONSE_RECV_TYPE;
3867 if (deliver_response(intf, recv_msg))
3885 struct ipmi_recv_msg *recv_msg;
3944 recv_msg = ipmi_alloc_recv_msg();
3945 if (!recv_msg) {
3955 ipmb_addr = (struct ipmi_ipmb_addr *) &recv_msg->addr;
3965 recv_msg->user = user;
3966 recv_msg->recv_type = IPMI_CMD_RECV_TYPE;
3967 recv_msg->msgid = msg->rsp[7] >> 2;
3968 recv_msg->msg.netfn = msg->rsp[4] >> 2;
3969 recv_msg->msg.cmd = msg->rsp[8];
3970 recv_msg->msg.data = recv_msg->msg_data;
3976 recv_msg->msg.data_len = msg->rsp_size - 10;
3977 memcpy(recv_msg->msg_data, &msg->rsp[9],
3979 if (deliver_response(intf, recv_msg))
3996 struct ipmi_recv_msg *recv_msg;
4035 recv_msg = ipmi_alloc_recv_msg();
4036 if (!recv_msg) {
4046 daddr = (struct ipmi_ipmb_direct_addr *)&recv_msg->addr;
4057 recv_msg->user = user;
4058 recv_msg->recv_type = IPMI_CMD_RECV_TYPE;
4059 recv_msg->msgid = (msg->rsp[2] >> 2);
4060 recv_msg->msg.netfn = msg->rsp[0] >> 2;
4061 recv_msg->msg.cmd = msg->rsp[3];
4062 recv_msg->msg.data = recv_msg->msg_data;
4064 recv_msg->msg.data_len = msg->rsp_size - 4;
4065 memcpy(recv_msg->msg_data, msg->rsp + 4,
4067 if (deliver_response(intf, recv_msg))
4080 struct ipmi_recv_msg *recv_msg;
4083 recv_msg = msg->user_data;
4084 if (recv_msg == NULL) {
4090 recv_msg->recv_type = IPMI_RESPONSE_RECV_TYPE;
4091 recv_msg->msgid = msg->msgid;
4092 daddr = (struct ipmi_ipmb_direct_addr *) &recv_msg->addr;
4098 recv_msg->msg.netfn = msg->rsp[0] >> 2;
4099 recv_msg->msg.cmd = msg->rsp[3];
4100 memcpy(recv_msg->msg_data, &msg->rsp[4], msg->rsp_size - 4);
4101 recv_msg->msg.data = recv_msg->msg_data;
4102 recv_msg->msg.data_len = msg->rsp_size - 4;
4103 deliver_local_response(intf, recv_msg);
4112 struct ipmi_recv_msg *recv_msg;
4148 &recv_msg)) {
4157 memcpy(recv_msg->msg_data, &msg->rsp[11], msg->rsp_size - 11);
4163 recv_msg->msg.netfn = msg->rsp[6] >> 2;
4164 recv_msg->msg.data = recv_msg->msg_data;
4165 recv_msg->msg.data_len = msg->rsp_size - 12;
4166 recv_msg->recv_type = IPMI_RESPONSE_RECV_TYPE;
4167 if (deliver_response(intf, recv_msg))
4185 struct ipmi_recv_msg *recv_msg;
4221 recv_msg = ipmi_alloc_recv_msg();
4222 if (!recv_msg) {
4231 lan_addr = (struct ipmi_lan_addr *) &recv_msg->addr;
4244 recv_msg->user = user;
4245 recv_msg->recv_type = IPMI_CMD_RECV_TYPE;
4246 recv_msg->msgid = msg->rsp[9] >> 2;
4247 recv_msg->msg.netfn = msg->rsp[6] >> 2;
4248 recv_msg->msg.cmd = msg->rsp[10];
4249 recv_msg->msg.data = recv_msg->msg_data;
4255 recv_msg->msg.data_len = msg->rsp_size - 12;
4256 memcpy(recv_msg->msg_data, &msg->rsp[11],
4258 if (deliver_response(intf, recv_msg))
4284 struct ipmi_recv_msg *recv_msg;
4329 recv_msg = ipmi_alloc_recv_msg();
4330 if (!recv_msg) {
4346 &recv_msg->addr);
4351 recv_msg->user = user;
4352 recv_msg->user_msg_data = NULL;
4353 recv_msg->recv_type = IPMI_OEM_RECV_TYPE;
4354 recv_msg->msg.netfn = msg->rsp[0] >> 2;
4355 recv_msg->msg.cmd = msg->rsp[1];
4356 recv_msg->msg.data = recv_msg->msg_data;
4362 recv_msg->msg.data_len = msg->rsp_size - 4;
4363 memcpy(recv_msg->msg_data, &msg->rsp[4],
4365 if (deliver_response(intf, recv_msg))
4375 static void copy_event_into_recv_msg(struct ipmi_recv_msg *recv_msg,
4380 recv_msg->msgid = 0;
4381 smi_addr = (struct ipmi_system_interface_addr *) &recv_msg->addr;
4385 recv_msg->recv_type = IPMI_ASYNC_EVENT_RECV_TYPE;
4386 recv_msg->msg.netfn = msg->rsp[0] >> 2;
4387 recv_msg->msg.cmd = msg->rsp[1];
4388 memcpy(recv_msg->msg_data, &msg->rsp[3], msg->rsp_size - 3);
4389 recv_msg->msg.data = recv_msg->msg_data;
4390 recv_msg->msg.data_len = msg->rsp_size - 3;
4396 struct ipmi_recv_msg *recv_msg, *recv_msg2;
4428 recv_msg = ipmi_alloc_recv_msg();
4429 if (!recv_msg) {
4431 list_for_each_entry_safe(recv_msg, recv_msg2, &msgs,
4433 list_del(&recv_msg->link);
4434 ipmi_free_recv_msg(recv_msg);
4447 copy_event_into_recv_msg(recv_msg, msg);
4448 recv_msg->user = user;
4450 list_add_tail(&recv_msg->link, &msgs);
4456 list_for_each_entry_safe(recv_msg, recv_msg2, &msgs, link) {
4457 list_del(&recv_msg->link);
4458 deliver_local_response(intf, recv_msg);
4465 recv_msg = ipmi_alloc_recv_msg();
4466 if (!recv_msg) {
4476 copy_event_into_recv_msg(recv_msg, msg);
4477 list_add_tail(&recv_msg->link, &intf->waiting_events);
4498 struct ipmi_recv_msg *recv_msg;
4501 recv_msg = msg->user_data;
4502 if (recv_msg == NULL) {
4508 recv_msg->recv_type = IPMI_RESPONSE_RECV_TYPE;
4509 recv_msg->msgid = msg->msgid;
4511 &recv_msg->addr);
4515 recv_msg->msg.netfn = msg->rsp[0] >> 2;
4516 recv_msg->msg.cmd = msg->rsp[1];
4517 memcpy(recv_msg->msg_data, &msg->rsp[2], msg->rsp_size - 2);
4518 recv_msg->msg.data = recv_msg->msg_data;
4519 recv_msg->msg.data_len = msg->rsp_size - 2;
4520 deliver_local_response(intf, recv_msg);
4646 struct ipmi_recv_msg *recv_msg;
4655 recv_msg = msg->user_data;
4658 if (!recv_msg)
4661 recv_msg->recv_type = IPMI_RESPONSE_RESPONSE_TYPE;
4662 recv_msg->msg.data = recv_msg->msg_data;
4663 recv_msg->msg_data[0] = cc;
4664 recv_msg->msg.data_len = 1;
4665 deliver_local_response(intf, recv_msg);
4907 smi_from_recv_msg(struct ipmi_smi *intf, struct ipmi_recv_msg *recv_msg,
4918 memcpy(smi_msg->data, recv_msg->msg.data, recv_msg->msg.data_len);
4919 smi_msg->data_size = recv_msg->msg.data_len;
4952 msg = ent->recv_msg;
4956 else if (is_lan_addr(&ent->recv_msg->addr))
4972 smi_msg = smi_from_recv_msg(intf, ent->recv_msg, slot,
4975 if (is_lan_addr(&ent->recv_msg->addr))
4994 if (is_lan_addr(&ent->recv_msg->addr))
5199 struct ipmi_recv_msg recv_msg;
5203 recv_msg.done = dummy_recv_done_handler;
5212 &recv_msg,