Re: [hail patch 2/3] fix 32/64 wire interoperability

Jeff Garzik <[email protected]> Thu, 05 Aug 2010 17:25:30 -0400
Newsgroups org.kernel.vger.hail-devel
Message-ID <[email protected]>
On 08/04/2010 07:16 PM, Pete Zaitcev wrote:
> Testing found that tabled and chunkd running on CPUs with different
> word length cannot talk to each other.
>
> The bug was introduced by commit ea5d20bc22aeed077312c9c1824e84651af17a16.
>
> The fix is to add named padding that takes the place of the invisible
> padding, thus making the layout platform-neutral.
>
> Signed-off-by: Pete Zaitcev<[email protected]>
>
> ---
>   include/chunk_msg.h |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/include/chunk_msg.h b/include/chunk_msg.h
> index a34fc21..4c170e4 100644
> --- a/include/chunk_msg.h
> +++ b/include/chunk_msg.h
> @@ -91,6 +91,7 @@ struct chunksrv_resp {
>   	uint32_t		nonce;	/* txn id, copied from request */
>   	uint64_t		data_len;		/* len of addn'l data */
>   	unsigned char		hash[CHD_CSUM_SZ];	/* SHA1 checksum */
> +	unsigned char		rsv2[4];		/* pad for 64 bits */
>   };

good catch.  applied 1-3, and pushed out.

I wonder if we shouldn't switch to attribute(packed) for safety, though.