Index: drbd/drbd_receiver.c =================================================================== --- drbd/drbd_receiver.c (revision 2687) +++ drbd/drbd_receiver.c (working copy) @@ -2894,7 +2894,7 @@ return 0; } -#ifndef CONFIG_CRYPTO_HMAC +#if !defined(CONFIG_CRYPTO_HMAC) && !defined(CONFIG_CRYPTO_HMAC_MODULE) STATIC int drbd_do_auth(drbd_dev *mdev) { ERR( "This kernel was build without CONFIG_CRYPTO_HMAC.\n"); Index: drbd/drbd_nl.c =================================================================== --- drbd/drbd_nl.c (revision 2687) +++ drbd/drbd_nl.c (working copy) @@ -1052,7 +1052,8 @@ if( new_conf->cram_hmac_alg[0] != 0) { snprintf(hmac_name,HMAC_NAME_L,"hmac(%s)",new_conf->cram_hmac_alg); tfm = crypto_alloc_hash(hmac_name, 0, CRYPTO_ALG_ASYNC); - if (tfm == NULL) { + if (IS_ERR(tfm)) { + tfm = NULL; retcode=CRAMAlgNotAvail; goto fail; } Index: user/drbdsetup.c =================================================================== --- user/drbdsetup.c (revision 2687) +++ user/drbdsetup.c (working copy) @@ -359,8 +359,8 @@ EM(MDIOError) = "IO error(s) orruced during initial access to meta-data.\n", EM(MDInvalid) = "No valid meta-data signature found.\n)" "Use 'drbdadm create-md res' to initialize meta-data area.\n", - EM(CRAMAlgNotAvail) = "The 'cram-hmac-alg' you specified is not known in )" - "the kernel.\n", + EM(CRAMAlgNotAvail) = "The 'cram-hmac-alg' you specified is not known in " + "the kernel. (maybe you need to modprobe it, or modprobe hmac?)\n", EM(CRAMAlgNotDigest) = "The 'cram-hmac-alg' you specified is not a digest.", EM(KMallocFailed) = "kmalloc() failed. Out of memory?", EM(DiscardNotAllowed) = "--discard-my-data not allowed when primary.",