summaryrefslogtreecommitdiff
path: root/src/serialport/qserialport_unix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialport/qserialport_unix.cpp')
-rw-r--r--src/serialport/qserialport_unix.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/serialport/qserialport_unix.cpp b/src/serialport/qserialport_unix.cpp
index ab6aad9..aabcf4c 100644
--- a/src/serialport/qserialport_unix.cpp
+++ b/src/serialport/qserialport_unix.cpp
@@ -537,12 +537,12 @@ QSerialPortPrivate::setStandardBaudRate(qint32 baudRate, QSerialPort::Directions
{
struct serial_struct currentSerialInfo;
- if (::ioctl(descriptor, TIOCGSERIAL, &currentSerialInfo) != -1) {
-
+ if ((::ioctl(descriptor, TIOCGSERIAL, &currentSerialInfo) != -1)
+ && (currentSerialInfo.flags & ASYNC_SPD_CUST)) {
currentSerialInfo.flags &= ~ASYNC_SPD_CUST;
currentSerialInfo.custom_divisor = 0;
-
- ::ioctl(descriptor, TIOCSSERIAL, &currentSerialInfo);
+ if (::ioctl(descriptor, TIOCSSERIAL, &currentSerialInfo) == -1)
+ return decodeSystemError();
}
return setBaudRate_helper(baudRate, directions);