[SCTP]: Fix machine check/connection hang on IA64.
authorVlad Yasevich <vladislav.yasevich@hp.com>
Tue, 17 Jan 2006 19:55:57 +0000 (11:55 -0800)
committerSridhar Samudrala <sri@us.ibm.com>
Tue, 17 Jan 2006 19:55:57 +0000 (11:55 -0800)
commit313e7b4d2588539e388d31c1febd50503a0083fc
treeaa39d488fbb9f3ad48afdec3ef48b49f6fb4a197
parent8116ffad4180b39d7a755345c1fde09da83930c0
[SCTP]: Fix machine check/connection hang on IA64.

sctp_unpack_cookie used an on-stack array called digest as a result/out
parameter in the call to crypto_hmac. However, hmac code
(crypto_hmac_final)
assumes that the 'out' argument is in virtual memory (identity mapped
region)
and can use virt_to_page call on it.  This does not work with the on-stack
declared digest.  The problems observed so far have been:
 a) incorrect hmac digest
 b) machine check and hardware reset.

Solution is to define the digest in an identity mapped region by
kmalloc'ing
it.  We can do this once as part of the endpoint structure and re-use it
when
verifying the SCTP cookie.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
include/net/sctp/structs.h
net/sctp/sm_make_chunk.c