((type *)(__mptr - offsetof(type, member))); })
#endif
+/*
+ * Linux v4.15-rc2-5-g4229a470175b added sizeof_field()
+ * Linux v5.5-rc4-1-g1f07dcc459d5 removed FIELD_SIZEOF()
+ * Proved a sizeof_field in terms of FIELD_SIZEOF() when one is not provided
+ */
+#ifndef sizeof_field
+#define sizeof_field(type, member) FIELD_SIZEOF(type, member)
+#endif
+
#endif /* __LIBCFS_LINUX_MISC_H__ */
#include <crypto/skcipher.h>
#include <linux/key-type.h>
#include <linux/seq_file.h>
+#include <libcfs/linux/linux-misc.h>
#include "llcrypt_private.h"
}
#define LLCRYPT_FS_KEYRING_DESCRIPTION_SIZE \
- (CONST_STRLEN("llcrypt-") + FIELD_SIZEOF(struct super_block, s_id))
+ (CONST_STRLEN("llcrypt-") + sizeof_field(struct super_block, s_id))
#define LLCRYPT_MK_DESCRIPTION_SIZE (2 * LLCRYPT_KEY_IDENTIFIER_SIZE + 1)
#define round_up(x, y) ((((x) - 1) | __round_mask(x, y)) + 1)
#define round_down(x, y) ((x) & ~__round_mask(x, y))
-#define FIELD_SIZEOF(t, f) (sizeof(((t *)0)->f))
#define DIV_ROUND_UP __USER_DIV_ROUND_UP
#define DIV_ROUND_DOWN_ULL(ll, d) \