comment, ok?
--
ASOU Masato

Index: sys/dev/pv/vmt.c
===================================================================
RCS file: /cvs/src/sys/dev/pv/vmt.c,v
retrieving revision 1.27
diff -u -p -r1.27 vmt.c
--- sys/dev/pv/vmt.c    3 Dec 2022 10:57:04 -0000       1.27
+++ sys/dev/pv/vmt.c    13 Dec 2022 09:23:57 -0000
@@ -259,6 +259,7 @@ struct vmt_softc {
        char                    *sc_nic_info;
 };
 
+#define VMT_DEBUG
 #ifdef VMT_DEBUG
 #define DPRINTF(_arg...)       printf(_arg)
 #else
@@ -534,7 +535,7 @@ vmt_kvop(void *arg, int op, char *key, c
                DPRINTF("%s: unable to send rpci command\n", DEVNAME(sc));
                sc->sc_rpc_error = 1;
                error = EIO;
-               goto done;
+               goto close;
        }
 
        if (vm_rpc_get_length(&rpci, &rlen, &ack) != 0) {
@@ -542,13 +543,13 @@ vmt_kvop(void *arg, int op, char *key, c
                    DEVNAME(sc));
                sc->sc_rpc_error = 1;
                error = EIO;
-               goto done;
+               goto close;
        }
 
        if (rlen > 0) {
                if (rlen + 1 > valuelen) {
                        error = EMSGSIZE;
-                       goto done;
+                       goto close;
                }
 
                if (vm_rpc_get_data(&rpci, value, rlen, ack) != 0) {
@@ -556,20 +557,23 @@ vmt_kvop(void *arg, int op, char *key, c
                            DEVNAME(sc));
                        sc->sc_rpc_error = 1;
                        error = EIO;
-                       goto done;
+                       goto close;
                }
                /* test if response success  */
                if (rlen < 2 || value[0] != '1' || value[1] != ' ') {
                        DPRINTF("%s: host rejected command: %s\n", DEVNAME(sc),
                            buf);
                        error = EINVAL;
-                       goto done;
+                       goto close;
                }
                /* skip response that was tested */
                bcopy(value + 2, value, valuelen - 2);
                value[rlen - 2] = '\0';
        }
 
+ close:
+       if (vm_rpc_close(&rpci) != 0)
+                DPRINTF("%s: unable to close rpci channel\n", DEVNAME(sc));
  done:
        free(buf, M_TEMP, bufsz);
        return (error);

Reply via email to