--- bluez-utils-3.9.org/tools/hciattach.c 2007-01-28 20:16:48.000000000 +0000 +++ bluez-utils-3.9/tools/hciattach.c 2007-02-12 16:50:49.000000000 +0000 @@ -1135,7 +1256,7 @@ int main(int argc, char *argv[]) { struct uart_t *u = NULL; - int detach, printpid, opt, i, n, ld; + int detach, printpid, opt, i, n, ld, err; int to = 5; int init_speed = 0; int send_break = 0; @@ -1286,7 +1414,10 @@ while (!__io_canceled) { p.revents = 0; - if (poll(&p, 1, 500)) + err = poll(&p, 1, 500); + if (err < 0 && errno == EINTR) + continue; + if (err) break; }