We were checking by a positive return value instead of checking by -1 and errno. However when there's no support for TTY kernel returns EOPNOTSUPP as usual, which in the end will have a return value of -1 and errno will be set to EOPNOTSUPP. --- tools/rfcomm.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/rfcomm.c b/tools/rfcomm.c index e73b0ba..0a80670 100644 --- a/tools/rfcomm.c +++ b/tools/rfcomm.c @@ -182,10 +182,14 @@ static int create_dev(int ctl, int dev, uint32_t flags, bdaddr_t *bdaddr, int ar } err = ioctl(ctl, RFCOMMCREATEDEV, &req); - if (err == EOPNOTSUPP) - fprintf(stderr, "RFCOMM TTY support not available\n"); - else if (err < 0) - perror("Can't create device"); + if (err == -1) { + err = -errno; + + if (err == -EOPNOTSUPP) + fprintf(stderr, "RFCOMM TTY support not available\n"); + else + perror("Can't create device"); + } return err; } -- 1.7.11.3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html