• V
    [SCTP]: Fix machine check/connection hang on IA64. · 313e7b4d
    Vlad Yasevich 提交于
    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: NVlad Yasevich <vladislav.yasevich@hp.com>
    Signed-off-by: NSridhar Samudrala <sri@us.ibm.com>
    313e7b4d
structs.h 58.2 KB