2010-11-23 10:39:43

by Suraj Sumangala

[permalink] [raw]
Subject: [PATCH] hciattach: makes set_speed return error if any one operation fail

This patch lets set_speed function changing UART baud rate
to return an error code if any one operation fails
instead of returning only the last operation's status.

---
tools/hciattach.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/tools/hciattach.c b/tools/hciattach.c
index fd53710..7cb8e9e 100644
--- a/tools/hciattach.c
+++ b/tools/hciattach.c
@@ -144,9 +144,16 @@ static int uart_speed(int s)

int set_speed(int fd, struct termios *ti, int speed)
{
- cfsetospeed(ti, uart_speed(speed));
- cfsetispeed(ti, uart_speed(speed));
- return tcsetattr(fd, TCSANOW, ti);
+ if (cfsetospeed(ti, uart_speed(speed)) < 0)
+ return -errno;
+
+ if (cfsetispeed(ti, uart_speed(speed)) < 0)
+ return -errno;
+
+ if (tcsetattr(fd, TCSANOW, ti) < 0)
+ return -errno;
+
+ return 0;
}

/*
--
1.7.0.4



2010-11-23 11:10:21

by Johan Hedberg

[permalink] [raw]
Subject: Re: [PATCH] hciattach: makes set_speed return error if any one operation fail

Hi Suraj,

On Tue, Nov 23, 2010, Suraj Sumangala wrote:
> This patch lets set_speed function changing UART baud rate
> to return an error code if any one operation fails
> instead of returning only the last operation's status.
>
> ---
> tools/hciattach.c | 13 ++++++++++---
> 1 files changed, 10 insertions(+), 3 deletions(-)

Pushed upstream. Thanks.

Johan