Hi All,<br><br>Why do&nbsp;we&nbsp;need&nbsp;the&nbsp;socket&nbsp;state&nbsp;(for&nbsp;the&nbsp;nework&nbsp;layer&nbsp;representation&nbsp;of&nbsp;the&nbsp;sockets)&nbsp;to&nbsp;be&nbsp;<br>&nbsp;volatile?&nbsp;<br>It&nbsp;is&nbsp;implemented&nbsp;as&nbsp;volatile&nbsp;unsigned&nbsp;&nbsp;char skc_state in struct sock_common .<br><br>The tcp state change handler does not give me any clues also. 
<br><br>Is this simply an overkill here or to supress optimization from the GCC? <br><br>Can&nbsp;we just use memory barriers here?[refer: volatile considered harmful on LKML]<br> <br>Thank you<br>~psr<br><br> -- <br>play the game