diff --git a/libmctp-serial.h b/libmctp-serial.h
index 5eaf948..3e6fc5f 100644
--- a/libmctp-serial.h
+++ b/libmctp-serial.h
@@ -23,7 +23,8 @@
 void mctp_serial_open_fd(struct mctp_binding_serial *serial, int fd);
 
 /* direct function call IO */
-typedef int (*mctp_serial_tx_fn)(void *data, void *buf, size_t len);
+typedef int (*mctp_serial_tx_fn)(void *data, void *buf, size_t len)
+	__attribute__((warn_unused_result));
 void mctp_serial_set_tx_fn(struct mctp_binding_serial *serial,
 		mctp_serial_tx_fn fn, void *data);
 int mctp_serial_rx(struct mctp_binding_serial *serial,
diff --git a/serial.c b/serial.c
index ce4ea91..d59bf44 100644
--- a/serial.c
+++ b/serial.c
@@ -21,6 +21,19 @@
 
 #define pr_fmt(x) "serial: " x
 
+/* Post-condition: All bytes written or an error has occurred */
+#define mctp_write_all(fn, dst, src, len)				\
+({									\
+	ssize_t wrote;							\
+	while (len) {							\
+		wrote = fn(dst, src, len);				\
+		if (wrote < 0)						\
+			break;						\
+		len -= wrote;						\
+	}								\
+	len ? -1 : 0;							\
+})
+
 #include "libmctp.h"
 #include "libmctp-alloc.h"
 #include "libmctp-log.h"
@@ -139,12 +152,11 @@
 
 	len += sizeof(*hdr) + sizeof(*tlr);
 
-	if (serial->tx_fn)
-		serial->tx_fn(serial->tx_fn_data, serial->txbuf, len);
-	else
-		write(serial->fd, serial->txbuf, len);
+	if (!serial->tx_fn)
+		return mctp_write_all(write, serial->fd, serial->txbuf, len);
 
-	return 0;
+	return mctp_write_all(serial->tx_fn, serial->tx_fn_data, serial->txbuf,
+			      len);
 }
 
 static void mctp_serial_finish_packet(struct mctp_binding_serial *serial,
