[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20121029.150444.905377521761602639.davem@davemloft.net>
Date: Mon, 29 Oct 2012 15:04:44 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: nhorman@...driver.com
Cc: David.Laight@...LAB.COM, vyasevich@...il.com,
netdev@...r.kernel.org, linux-sctp@...r.kernel.org
Subject: Re: [PATCH] sctp: Clean up type-punning in sctp_cmd_t union
From: Neil Horman <nhorman@...driver.com>
Date: Mon, 29 Oct 2012 14:59:32 -0400
> I don't think thats whats going on at all. The problem, as commit
> 19c7e9eef503dc1ae926f3d26c56f88bee568d7b describes it, is that ia64 was
> speculatively loading a value from memory of type sctp_arg_t. If the
> initialization step set the value of one of the smaller members of the union
> (say a short), then the load stage may still load a larger amount of data (given
> that the union is larger than its smallest members). That results in part of
> the load being uninitalized, and ia64 declaring it Not A Thing, and consequently
> trapping out.
Agreed.
> The fix previously was to just initazlie the unsigned long member zero in that
> union before setting the actuall type member that was requried so as to ensure
> all the data was initalized. That works well enough, but it presumes that
> unsigned long is the largest member of the union, which is risky. Its better to
> memset the union to 0 for sizeof bytes to ensure future proofing.
Also agreed.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists