Re: [PATCH 6/6] ipc/sem.c: make semctl(,,{GETNCNT,GETZCNT}) standard compliant

From: Manfred Spraul
Date: Tue May 20 2014 - 14:30:24 EST


Hi Andrew,

On 05/20/2014 12:46 AM, Andrew Morton wrote:
On Sun, 18 May 2014 09:58:37 +0200 Manfred Spraul <manfred@xxxxxxxxxxxxxxxx> wrote:

SUSv4 clearly defines how semncnt and semzcnt must be calculated:
A task waits on exactly one semaphore:
The semaphore from the first operation in the sop array that cannot proceed.

The Linux implementation never followed the standard, it tried to count all
semaphores that might be the reason why a task sleeps.

This patch fixes that.
What are the back-compatibility implications of this change?
A really good question:
- there is no application in Fedora that uses GETNCNT or GETZCNT.
- application that use only single-sop semop() are also safe, the difference only affects complex apps.
- portable application are also safe, the new behavior is standard compliant.

But that's it. The old behavior existed in Linux from 0.99.something until now.

What about adding a WARN_ON_ONCE() if the case where the behavior differs happens?
Should I write a patch?

--
Manfred
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/