diff --git a/drivers/serial/pty.c b/drivers/serial/pty.c index 4b04b2fd7b6..bcefb1672fe 100644 --- a/drivers/serial/pty.c +++ b/drivers/serial/pty.c @@ -340,7 +340,8 @@ static int pty_close(FAR struct file *filep) /* Check if the decremented inode reference count would go to zero */ - if (atomic_read(&inode->i_crefs) == 1) + if ((!dev->pd_master && atomic_load(&inode->i_crefs) == 2) || + (dev->pd_master && atomic_load(&inode->i_crefs) == 1)) { /* Did the (single) master just close its reference? */