From 81d275c6c37f075643fec3789ea3f3e4097cda41 Mon Sep 17 00:00:00 2001 From: Tim Sell Date: Fri, 24 Jul 2015 12:00:23 -0400 Subject: [PATCH] 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: Tim Sell Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- drivers/staging/unisys/visornic/visornic_main.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index ec38b51e..a4aa8af 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -102,6 +102,7 @@ struct chanstat { unsigned long sent_enbdis; unsigned long sent_promisc; unsigned long sent_post; + unsigned long sent_post_failed; unsigned long sent_xmit; unsigned long reject_count; unsigned long extra_rcvbufs_sent; @@ -479,11 +480,14 @@ post_skb(struct uiscmdrsp *cmdrsp, if ((cmdrsp->net.rcvpost.frag.pi_off + skb->len) <= PI_PAGE_SIZE) { cmdrsp->net.type = NET_RCV_POST; cmdrsp->cmdtype = CMD_NET_TYPE; - visorchannel_signalinsert(devdata->dev->visorchannel, + if (visorchannel_signalinsert(devdata->dev->visorchannel, IOCHAN_TO_IOPART, - cmdrsp); - atomic_inc(&devdata->num_rcvbuf_in_iovm); - devdata->chstat.sent_post++; + cmdrsp)) { + atomic_inc(&devdata->num_rcvbuf_in_iovm); + devdata->chstat.sent_post++; + } else { + devdata->chstat.sent_post_failed++; + } } } @@ -505,10 +509,10 @@ send_enbdis(struct net_device *netdev, int state, devdata->cmdrsp_rcv->net.enbdis.context = netdev; devdata->cmdrsp_rcv->net.type = NET_RCV_ENBDIS; devdata->cmdrsp_rcv->cmdtype = CMD_NET_TYPE; - visorchannel_signalinsert(devdata->dev->visorchannel, + if (visorchannel_signalinsert(devdata->dev->visorchannel, IOCHAN_TO_IOPART, - devdata->cmdrsp_rcv); - devdata->chstat.sent_enbdis++; + devdata->cmdrsp_rcv)) + devdata->chstat.sent_enbdis++; } /** @@ -1502,6 +1506,9 @@ static ssize_t info_debugfs_read(struct file *file, char __user *buf, " chstat.sent_post = %lu\n", 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, " chstat.sent_xmit = %lu\n", devdata->chstat.sent_xmit); str_pos += scnprintf(vbuf + str_pos, len - str_pos, -- 2.7.4