Last minute 6.25 change
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5595 42af7a65-404d-4744-a932-0658087f49c3
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index b4015ba..b04150e 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -1075,17 +1075,17 @@
These unreleased changes are also listed <a href="#pendingchanges">here</a>.
</p>
<p>
- This release corresponds with SVN release number: r5594,
+ This release corresponds with SVN release number: r5595,
Note that all SVN information has been stripped from the tarballs.
If you need the SVN configuration, you should check out directly from SVN.
- Revision r5594 should equivalent to release 6.25 of NuttX:
+ Revision r5595 should equivalent to release 6.25 of NuttX:
</p>
<ul><pre>
-svn checkout -r5594 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</pre></ul>
<p>Or (HTTP):</p>
<ul><pre>
-svn checkout -r5594 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
</pre></ul>
<p>
diff --git a/ReleaseNotes b/ReleaseNotes
index 9d146e9..4e8768b 100644
--- a/ReleaseNotes
+++ b/ReleaseNotes
@@ -3450,17 +3450,17 @@
apps-6.25.tar.gz. Both may be needed (see the top-level nuttx/README.txt
file for build information).
-This release corresponds with SVN release number: r5594
+This release corresponds with SVN release number: r5595
Note that all SVN information has been stripped from the tarballs. If you
need the SVN configuration information, you should check out directly from
-SVN. Revision r5594 should equivalent to release 6.25 of NuttX:
+SVN. Revision r5595 should equivalent to release 6.25 of NuttX:
- svn checkout -r5594 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+ svn checkout -r5595 svn://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
Or (HTTP):
- svn checkout -r5594 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
+ svn checkout -r5595 http://svn.code.sf.net/p/nuttx/code/trunk nuttx-code
Additional new features and extended functionality:
diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c
index 9c6acf2..cc1c697 100644
--- a/drivers/serial/serial.c
+++ b/drivers/serial/serial.c
@@ -292,15 +292,6 @@
ssize_t nread = buflen;
int ret;
-#ifdef CONFIG_SERIAL_REMOVABLE
- /* If the removable device is no longer connected, refuse to write to the device */
-
- if (dev->disconnected)
- {
- return -ENOTCONN;
- }
-#endif
-
/* We may receive console writes through this path from interrupt handlers and
* from debug output in the IDLE task! In these cases, we will need to do things
* a little differently.
@@ -308,6 +299,17 @@
if (up_interrupt_context() || getpid() == 0)
{
+#ifdef CONFIG_SERIAL_REMOVABLE
+ /* If the removable device is no longer connected, refuse to write to
+ * the device.
+ */
+
+ if (dev->disconnected)
+ {
+ return -ENOTCONN;
+ }
+#endif
+
/* up_putc() will be used to generate the output in a busy-wait loop.
* up_putc() is only available for the console device.
*/
@@ -338,6 +340,18 @@
return ret;
}
+#ifdef CONFIG_SERIAL_REMOVABLE
+ /* If the removable device is no longer connected, refuse to write to the
+ * device.
+ */
+
+ if (dev->disconnected)
+ {
+ uart_givesem(&dev->xmit.sem);
+ return -ENOTCONN;
+ }
+#endif
+
/* Loop while we still have data to copy to the transmit buffer.
* we add data to the head of the buffer; uart_xmitchars takes the
* data from the end of the buffer.
@@ -417,15 +431,6 @@
int16_t tail;
int ret;
-#ifdef CONFIG_SERIAL_REMOVABLE
- /* If the removable device is no longer connected, refuse to read from the device */
-
- if (dev->disconnected)
- {
- return -ENOTCONN;
- }
-#endif
-
/* Only one user can access dev->recv.tail at a time */
ret = uart_takesem(&dev->recv.sem, true);
@@ -439,6 +444,16 @@
return ret;
}
+#ifdef CONFIG_SERIAL_REMOVABLE
+ /* If the removable device is no longer connected, refuse to read from the device */
+
+ if (dev->disconnected)
+ {
+ uart_givesem(&dev->recv.sem);
+ return -ENOTCONN;
+ }
+#endif
+
/* Loop while we still have data to copy to the receive buffer.
* we add data to the head of the buffer; uart_xmitchars takes the
* data from the end of the buffer.