Commit 81d275c6 authored by Tim Sell's avatar Tim Sell Committed by Greg Kroah-Hartman

staging: unisys: visornic - check visorchannel_signalinsert/remove failures

Logic to check for failures of visorchannel_signalinsert() and
visorchannel_signalremove() were added, and a new sent_post_failed counter
tracks the number of times we failed to post a rcv buffer to the IO
partition.
Signed-off-by: default avatarTim Sell <Timothy.Sell@unisys.com>
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4d79002e
...@@ -102,6 +102,7 @@ struct chanstat { ...@@ -102,6 +102,7 @@ struct chanstat {
unsigned long sent_enbdis; unsigned long sent_enbdis;
unsigned long sent_promisc; unsigned long sent_promisc;
unsigned long sent_post; unsigned long sent_post;
unsigned long sent_post_failed;
unsigned long sent_xmit; unsigned long sent_xmit;
unsigned long reject_count; unsigned long reject_count;
unsigned long extra_rcvbufs_sent; unsigned long extra_rcvbufs_sent;
...@@ -479,11 +480,14 @@ post_skb(struct uiscmdrsp *cmdrsp, ...@@ -479,11 +480,14 @@ post_skb(struct uiscmdrsp *cmdrsp,
if ((cmdrsp->net.rcvpost.frag.pi_off + skb->len) <= PI_PAGE_SIZE) { if ((cmdrsp->net.rcvpost.frag.pi_off + skb->len) <= PI_PAGE_SIZE) {
cmdrsp->net.type = NET_RCV_POST; cmdrsp->net.type = NET_RCV_POST;
cmdrsp->cmdtype = CMD_NET_TYPE; cmdrsp->cmdtype = CMD_NET_TYPE;
visorchannel_signalinsert(devdata->dev->visorchannel, if (visorchannel_signalinsert(devdata->dev->visorchannel,
IOCHAN_TO_IOPART, IOCHAN_TO_IOPART,
cmdrsp); cmdrsp)) {
atomic_inc(&devdata->num_rcvbuf_in_iovm); atomic_inc(&devdata->num_rcvbuf_in_iovm);
devdata->chstat.sent_post++; devdata->chstat.sent_post++;
} else {
devdata->chstat.sent_post_failed++;
}
} }
} }
...@@ -505,10 +509,10 @@ send_enbdis(struct net_device *netdev, int state, ...@@ -505,10 +509,10 @@ send_enbdis(struct net_device *netdev, int state,
devdata->cmdrsp_rcv->net.enbdis.context = netdev; devdata->cmdrsp_rcv->net.enbdis.context = netdev;
devdata->cmdrsp_rcv->net.type = NET_RCV_ENBDIS; devdata->cmdrsp_rcv->net.type = NET_RCV_ENBDIS;
devdata->cmdrsp_rcv->cmdtype = CMD_NET_TYPE; devdata->cmdrsp_rcv->cmdtype = CMD_NET_TYPE;
visorchannel_signalinsert(devdata->dev->visorchannel, if (visorchannel_signalinsert(devdata->dev->visorchannel,
IOCHAN_TO_IOPART, IOCHAN_TO_IOPART,
devdata->cmdrsp_rcv); devdata->cmdrsp_rcv))
devdata->chstat.sent_enbdis++; devdata->chstat.sent_enbdis++;
} }
/** /**
...@@ -1501,6 +1505,9 @@ static ssize_t info_debugfs_read(struct file *file, char __user *buf, ...@@ -1501,6 +1505,9 @@ static ssize_t info_debugfs_read(struct file *file, char __user *buf,
str_pos += scnprintf(vbuf + str_pos, len - str_pos, str_pos += scnprintf(vbuf + str_pos, len - str_pos,
" chstat.sent_post = %lu\n", " chstat.sent_post = %lu\n",
devdata->chstat.sent_post); devdata->chstat.sent_post);
str_pos += scnprintf(vbuf + str_pos, len - str_pos,
" chstat.sent_post_failed = %lu\n",
devdata->chstat.sent_post_failed);
str_pos += scnprintf(vbuf + str_pos, len - str_pos, str_pos += scnprintf(vbuf + str_pos, len - str_pos,
" chstat.sent_xmit = %lu\n", " chstat.sent_xmit = %lu\n",
devdata->chstat.sent_xmit); devdata->chstat.sent_xmit);
......
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