• Neil Horman's avatar
    sctp: Clean up type-punning in sctp_cmd_t union · b26ddd81
    Neil Horman authored
    Lots of points in the sctp_cmd_interpreter function treat the sctp_cmd_t arg as
    a void pointer, even though they are written as various other types.  Theres no
    need for this as doing so just leads to possible type-punning issues that could
    cause crashes, and if we remain type-consistent we can actually just remove the
    void * member of the union entirely.
    
    Change Notes:
    
    v2)
    	* Dropped chunk that modified SCTP_NULL to create a marker pattern
    	 should anyone try to use a SCTP_NULL() assigned sctp_arg_t, Assigning
    	 to .zero provides the same effect and should be faster, per Vlad Y.
    
    v3)
    	* Reverted part of V2, opting to use memset instead of .zero, so that
    	 the entire union is initalized thus avoiding the i164 speculative load
    	 problems previously encountered, per Dave M..  Also rewrote
    	 SCTP_[NO]FORCE so as to use common infrastructure a little more
    
    Signed-off-by: Neil Horman <nhorman@tuxdriver.com
    CC: Vlad Yasevich <vyasevich@gmail.com>
    CC: "David S. Miller" <davem@davemloft.net>
    CC: linux-sctp@vger.kernel.org
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b26ddd81
sm_sideeffect.c 49.1 KB