/* Type 3 protection has a 16-bit guard tag and 16 + 32 bits of opaque tag space.  */
static void sd_dif_type3_generate(struct blk_integrity_exchg *bix, csum_fn *fn)
/* Type 3 protection has a 16-bit guard tag and 16 + 32 bits of opaque tag space.  */
static void sd_dif_type3_generate(struct blk_integrity_exchg *bix, csum_fn *fn)
{
	void *buf = bix->data_buf;
	struct sd_dif_tuple *sdt = bix->prot_buf;
	unsigned int i;
	for (i = 0 ; i < bix->data_size ; i += bix->sector_size, sdt++) {
		sdt->guard_tag = fn(buf, bix->sector_size);
		sdt->ref_tag = 0;
		sdt->app_tag = 0;
		buf += bix->sector_size;
	}
}