Linux/TransportRpmsg: Change ESHUTDOWN to ENOLINK in transportGet
authorSuman Anna <s-anna@ti.com>
Fri, 1 May 2015 00:26:17 +0000 (19:26 -0500)
committerRobert Tivy <rtivy@ti.com>
Wed, 6 May 2015 23:34:59 +0000 (16:34 -0700)
The ESHUTDOWN error code translates to the error string,
"Cannot send after transport endpoint shutdown", and this is
not really meaningful on a socket recvfrom() call. Instead,
use ENOLINK which translates as "Link has been severed". This
is to be matched with the corresponding change in the kernel
rpmsg-proto driver. This error code is specifically used to
detect a crashed remote processor, and to allow the MessageQ
transport to pass on the status to MessageQ client applications.

Signed-off-by: Suman Anna <s-anna@ti.com>
linux/src/transport/TransportRpmsg.c

index 6e3d704a9e548cef40cf7b9925c38c41f77c24a5..ed3de5e4488aafa917e4d6a7ef5ffd895594c661 100644 (file)
@@ -642,7 +642,7 @@ static Int transportGet(int sock, MessageQ_Msg *retMsg)
     }
     if (byteCount < 0) {
         printf("recvfrom failed: %s (%d)\n", strerror(errno), errno);
-        if (errno == ESHUTDOWN) {
+        if (errno == ENOLINK) {
             status = MessageQ_E_SHUTDOWN;
         }
         else {