Patrick Williams | b48b7b4 | 2016-08-17 15:04:38 -0500 | [diff] [blame^] | 1 | From a6e5813d2f8402bf3a311c8bcda02623bfb76882 Mon Sep 17 00:00:00 2001 |
| 2 | From: Carlos Hernandez <ceh@ti.com> |
| 3 | Date: Tue, 24 Feb 2015 16:00:34 -0500 |
| 4 | Subject: [PATCH 2/2] Restore original loopback config |
| 5 | |
| 6 | If loopback option is enabled, disable it at the end of the test. |
| 7 | |
| 8 | Signed-off-by: Carlos Hernandez <ceh@ti.com> |
| 9 | Upstream-status: Pending |
| 10 | --- |
| 11 | serialcheck.c | 9 +++++++-- |
| 12 | 1 file changed, 7 insertions(+), 2 deletions(-) |
| 13 | |
| 14 | diff --git a/serialcheck.c b/serialcheck.c |
| 15 | index 4100c37..06470f7 100644 |
| 16 | --- a/serialcheck.c |
| 17 | +++ b/serialcheck.c |
| 18 | @@ -427,6 +427,7 @@ int main(int argc, char *argv[]) |
| 19 | unsigned char *data; |
| 20 | unsigned int open_mode; |
| 21 | off_t data_len; |
| 22 | + unsigned int mcr; |
| 23 | |
| 24 | argp_parse(&argp, argc, argv, 0, NULL, &opts); |
| 25 | if (!opts.file_trans) |
| 26 | @@ -496,8 +497,6 @@ int main(int argc, char *argv[]) |
| 27 | } |
| 28 | |
| 29 | if (opts.loopback) { |
| 30 | - unsigned int mcr; |
| 31 | - |
| 32 | ret = ioctl(fd, TIOCMGET, &mcr); |
| 33 | if (ret < 0) |
| 34 | die("mcr get failed: %m\n"); |
| 35 | @@ -535,6 +534,12 @@ int main(int argc, char *argv[]) |
| 36 | ret = tcsetattr(fd, TCSAFLUSH, &old_term); |
| 37 | if (ret) |
| 38 | printf("tcsetattr() of old ones failed: %m\n"); |
| 39 | + if (opts.loopback) { |
| 40 | + mcr &= ~(TIOCM_LOOP); |
| 41 | + ret = ioctl(fd, TIOCMSET, &mcr); |
| 42 | + } |
| 43 | + if (ret) |
| 44 | + printf("disabling loopback failed: %m\n"); |
| 45 | |
| 46 | close(fd); |
| 47 | return status; |
| 48 | -- |
| 49 | 1.9.1 |