Commit 44b849d1 authored by Inaky Perez-Gonzalez's avatar Inaky Perez-Gonzalez

wimax/i2400m: trace commands sent from user space on the "echo" pipe

When commands are sent from user space, trace both the command sent
and the answer received over the "echo" pipe instead of over the
"trace" pipe when command tracing is enabled. As well, when the device
sends a reports/indications, send it over the "echo" pipe.

The "trace" pipe is used by the device to send firmware traces;
gets confusing. Another named pipe makes it easier to split debug
information.
Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
parent fe442683
...@@ -231,13 +231,20 @@ int i2400m_op_msg_from_user(struct wimax_dev *wimax_dev, ...@@ -231,13 +231,20 @@ int i2400m_op_msg_from_user(struct wimax_dev *wimax_dev,
d_fnstart(4, dev, "(wimax_dev %p [i2400m %p] msg_buf %p " d_fnstart(4, dev, "(wimax_dev %p [i2400m %p] msg_buf %p "
"msg_len %zu genl_info %p)\n", wimax_dev, i2400m, "msg_len %zu genl_info %p)\n", wimax_dev, i2400m,
msg_buf, msg_len, genl_info); msg_buf, msg_len, genl_info);
if (unlikely(i2400m->trace_msg_from_user))
wimax_msg(&i2400m->wimax_dev, "echo",
msg_buf, msg_len, GFP_KERNEL);
ack_skb = i2400m_msg_to_dev(i2400m, msg_buf, msg_len); ack_skb = i2400m_msg_to_dev(i2400m, msg_buf, msg_len);
result = PTR_ERR(ack_skb); result = PTR_ERR(ack_skb);
if (IS_ERR(ack_skb)) if (IS_ERR(ack_skb))
goto error_msg_to_dev; goto error_msg_to_dev;
if (unlikely(i2400m->trace_msg_from_user)) if (unlikely(i2400m->trace_msg_from_user)) {
wimax_msg(&i2400m->wimax_dev, "trace", const void *ack_data;
msg_buf, msg_len, GFP_KERNEL); size_t ack_len;
ack_data = wimax_msg_data_len(ack_skb, &ack_len);
wimax_msg(&i2400m->wimax_dev, "echo",
ack_data, ack_len, GFP_KERNEL);
}
result = wimax_msg_send(&i2400m->wimax_dev, ack_skb); result = wimax_msg_send(&i2400m->wimax_dev, ack_skb);
error_msg_to_dev: error_msg_to_dev:
d_fnend(4, dev, "(wimax_dev %p [i2400m %p] msg_buf %p msg_len %zu " d_fnend(4, dev, "(wimax_dev %p [i2400m %p] msg_buf %p msg_len %zu "
......
...@@ -309,6 +309,9 @@ void i2400m_rx_ctl(struct i2400m *i2400m, struct sk_buff *skb_rx, ...@@ -309,6 +309,9 @@ void i2400m_rx_ctl(struct i2400m *i2400m, struct sk_buff *skb_rx,
skb_get(skb_rx); skb_get(skb_rx);
i2400m_queue_work(i2400m, i2400m_report_hook_work, i2400m_queue_work(i2400m, i2400m_report_hook_work,
GFP_KERNEL, &args, sizeof(args)); GFP_KERNEL, &args, sizeof(args));
if (unlikely(i2400m->trace_msg_from_user))
wimax_msg(&i2400m->wimax_dev, "echo",
l3l4_hdr, size, GFP_KERNEL);
result = wimax_msg(&i2400m->wimax_dev, NULL, l3l4_hdr, size, result = wimax_msg(&i2400m->wimax_dev, NULL, l3l4_hdr, size,
GFP_KERNEL); GFP_KERNEL);
if (result < 0) if (result < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment