Thread (1 message) 1 message, 1 author, 2016-02-12

Re: [PATCH net] af_unix: Guard against other == sk in unix_dgram_sendmsg

From: Rainer Weikusat <hidden>
Date: 2016-02-12 21:00:27
Also in: lkml

Ben Hutchings [off-list ref] writes:
On Fri, 2016-02-12 at 20:17 +0000, Rainer Weikusat wrote:
[...]
quoted
quoted
quoted
I don't think this should apply when
receiving and sending sockets are identical. But that's just my
opinion. The other option would be to avoid the unix_state_double_lock
for sk == other.
Given that unix_state_double_lock() already handles sk == other, I'm
not sure why you think it needs to be avoided.
Because the whole complication of restarting the operation after locking
both sk and other because other had to be unlocked before calling
unix_state_double_lock is useless for this case:
[...]
Well of course it's useless, but it's also harmless.  
As is adding a

for (i = 0; i < 1000000; ++i);

between any two statements. And this isn't even entirely true as the
pointless double-lock will then require "did we pointlessly
doube-lock" checks elsewhere. I think it should be possible to do this
in a simpler way by not pointlessly double-locking (this may be
wrong but it's worth a try).
If we really wanted to optimise this we could also skip unlocking if
other < sk.
I wouldn't want to hardcode assumptions about the unix_state_double_lock
algorithm in functions using it. 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help