Re: [PATCH] devpts: fix pty count limit off by one

Yichong Chen <[email protected]> Tue, 4 Aug 2026 17:52:52 +0800
Newsgroups gmane.linux.serial,gmane.linux.kernel
Message-ID <[email protected]>
Hi Greg,

Yes, this is user-visible.

The reason I sent the patch is that this used to allow pty_count to reach
the configured limit.  Before commit 0f0a0e54a2a1 ("devpts: Convert to new
IDA API"), devpts_new_index() checked the old pty_count first and only
incremented it after the allocation succeeded:

  if (pty_count >= limit)
          return -ENOSPC;
  ...
  pty_count++;

After that commit, the code started using atomic_inc_return(), but kept the
>= comparison:

  if (atomic_inc_return(&pty_count) >= limit)
          goto out;

So a count equal to the configured limit became rejected.  That makes
kernel.pty.max behave as an effective max - 1 limit.

I thought allowing the count to reach kernel.pty.max again would better
match the usual interpretation of a "max" sysctl.  But I agree this also
changes visible behavior again, and the current max - 1 behavior has been
around since 2018.

So if you prefer to preserve the existing behavior for compatibility, I am
fine with dropping the patch.

Thanks,
Yichong