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

Manfred Spraul
2014-05-20T18:30:16Z

Hi Andrew,

On 05/20/2014 12:46 AM, Andrew Morton wrote:
> On Sun, 18 May 2014 09:58:37 +0200 Manfred Spraul <manfred@colorfullife.com> 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