diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h
index b745d86783fe353691df8f5b0e9053e358b5a42f..609232e9314a8b169cd6c82d0984a96051b014b2 100644
--- a/fs/ubifs/misc.h
+++ b/fs/ubifs/misc.h
@@ -260,7 +260,8 @@ struct ubifs_branch *ubifs_idx_branch(const struct ubifs_info *c,
 static inline void *ubifs_idx_key(const struct ubifs_info *c,
 				  const struct ubifs_idx_node *idx)
 {
-	return (void *)((struct ubifs_branch *)idx->branches)->key;
+	const __u8 *branch = idx->branches;
+	return (void *)((struct ubifs_branch *)branch)->key;
 }
 
 /**