fix: let SerialExceptions pass through
diff --git a/serial/serialposix.py b/serial/serialposix.py
index fed0d2e..249dae6 100644
--- a/serial/serialposix.py
+++ b/serial/serialposix.py
@@ -527,6 +527,8 @@
                         raise SerialException('write failed (select)')
                 d = d[n:]
                 tx_len -= n
+            except SerialException:
+                raise
             except OSError as v:
                 if v.errno != errno.EAGAIN:
                     raise SerialException('write failed: %s' % (v,))