On Mon, 2018-09-03 at 13:33 +0300, Avri Altman wrote: > [ ... ] > +++ b/include/uapi/scsi/scsi_bsg_ufs.h > @@ -0,0 +1,56 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * UFS Transport SGIO v4 BSG Message Support > + * > + * Copyright (C) 2018 Western Digital Corporation > + */ > +#ifndef SCSI_BSG_UFS_H > +#define SCSI_BSG_UFS_H > + > +/* > + * This file intended to be included by both kernel and user space > + */ > + > + > +/** > + * struct ufs_bsg_upiu - upiu transaction structure > + * > + * @header: upiu header > + * @tsf: Transaction Specific Fields > + * @data: payload pointer > + * > + * This structure supports all ufs transaction types per JEDEC > UFSv2.1 > + * paragraph 10.7 > + */ > +struct ufs_bsg_upiu { > + uint32_t header[3]; > + uint32_t tsf[5]; > + uint8_t data[0]; > +}; In addition to Christoph's comments: is this a redefinition of an existing data structure (struct utp_upiu_header)? Please do not introduce variants of existing data structures but instead proceed as follows: - Move the relevant existing data structures (utp_upiu_header, utp_upiu_query, ...) from drivers/scsi/ufs/ufs.h into a header file under include/uapi. - Add a new patch at the beginning of this series that does nothing else than moving these data structures. - Use the existing data structures instead of introducing struct ufs_bsg_upiu. Thanks, Bart.